使用PHP(Codeigniter)将变量从控制器传递到javascript

使用PHP(Codeigniter)将变量从控制器传递到javascript,javascript,php,ajax,codeigniter-3,Javascript,Php,Ajax,Codeigniter 3,我有注册模块,到目前为止,我已经完成了所有字段的验证:名称、电子邮件、用户名和密码,检查电子邮件和用户名是否已经存在 如果用户名已经存在,则尝试添加建议。我已经完成了在用户名中添加前缀的工作,但是在将变量传递到javascript并在视图中显示时遇到了问题 这是我的控制器 这是我用ajax编写的javascript 这是我的观点 问题:如何将变量$username传递到javascript中 注意:我尝试了这种方法,改变了echo json编码;将$username编码到这个echo中。我的ja

我有注册模块,到目前为止,我已经完成了所有字段的验证:名称、电子邮件、用户名和密码,检查电子邮件和用户名是否已经存在

如果用户名已经存在,则尝试添加建议。我已经完成了在用户名中添加前缀的工作,但是在将变量传递到javascript并在视图中显示时遇到了问题

这是我的控制器

这是我用ajax编写的javascript

这是我的观点

问题:如何将变量$username传递到javascript中

注意:我尝试了这种方法,改变了echo json编码;将$username编码到这个echo中。我的javascript else ifresult==$username。。。此消息将不再有效。

希望这将对您有所帮助:

对于现有状态记录,请执行以下操作:

$data['username'] = $username;
$data['status'] = 'existing';
echo json_encode($data);
exit;
  var result = JSON.parse(data);
  if(result.status === "success")
  {
    $("h5").html("");
    success_message("#success-message-new-account","Create Successful!");
    window.setTimeout(function(){location.href=base_url},2000);
  }
  else if(result.status === "existing")
  {
    $("h5").html("");
    success_message("#existing-message-account","You may use!" + result.username);
    // window.setTimeout(function(){location.href=base_url},2000);
  }
对于成功状态记录,按如下方式返回

$data['username'] = $username;
$data['status'] = 'success';
echo json_encode($data);
exit;
您的ajax成功部分应该有如下代码:

$data['username'] = $username;
$data['status'] = 'existing';
echo json_encode($data);
exit;
  var result = JSON.parse(data);
  if(result.status === "success")
  {
    $("h5").html("");
    success_message("#success-message-new-account","Create Successful!");
    window.setTimeout(function(){location.href=base_url},2000);
  }
  else if(result.status === "existing")
  {
    $("h5").html("");
    success_message("#existing-message-account","You may use!" + result.username);
    // window.setTimeout(function(){location.href=base_url},2000);
  }

使用如下内容:$data=array'username'=>username,'status'=>success';echo json_编码$data;你是说改变这个回音json编码是存在的;将$username编码到这个echo中?如果我在javascript中这样做。否则,如果结果===现有。。。。不会再工作了。我还尝试了change result==$username,消息将不会显示如果您更改控制器的响应代码,您还必须在ajax中进行更改,请参阅我的答案,希望您能得到这样的想法,即如何在javascript中访问元素。后果我说的对吗?是的,这是获取更多信息的方法:请参阅数据类型;:
$data['username'] = $username;
$data['status'] = 'success';
echo json_encode($data);
exit;
  var result = JSON.parse(data);
  if(result.status === "success")
  {
    $("h5").html("");
    success_message("#success-message-new-account","Create Successful!");
    window.setTimeout(function(){location.href=base_url},2000);
  }
  else if(result.status === "existing")
  {
    $("h5").html("");
    success_message("#existing-message-account","You may use!" + result.username);
    // window.setTimeout(function(){location.href=base_url},2000);
  }