Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在同一页面的PHP代码中使用AJAX回调中的值?_Javascript_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

Javascript 如何在同一页面的PHP代码中使用AJAX回调中的值?

Javascript 如何在同一页面的PHP代码中使用AJAX回调中的值?,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,这是我第一次使用AJAX。我完全不了解这里的数据流。请帮帮我,我在codeigniter里做这件事 这是我编辑的代码: public function get_tasks() { $this->db->select('*'); $this->db->from('tasks '); $rslt = $this->db->get(); return $rslt; } public functi

这是我第一次使用AJAX。我完全不了解这里的数据流。请帮帮我,我在codeigniter里做这件事 这是我编辑的代码:

    public function get_tasks()
    {
     $this->db->select('*');
     $this->db->from('tasks ');
     $rslt = $this->db->get();
     return $rslt;
     }
   public function usermaster()
  {
   $this->db->select('*');
   $this->db->from('usersmaster ');
   $rslt = $this->db->get();
   return $rslt;
  }
“我的视图”页面中的js函数:

    function selectHandler() {
      var selectedItem = chart.getSelection()[0];

      if (selectedItem) {
        var topping = data.getValue(selectedItem.row, 0);

       $.post("http://localhost/offlearn/index.php/ctrl_offapp/trail2",
    {
      top: topping,

    },
    function(res,status){
       // alert(res);
        document.getElementById('tablePrint').innerHTML = res;
    });
    }
    }
trial2
是我的控制器功能

你能帮忙吗

**codeigniter中的trial2功能是**:

    public function trail2(){
$var=$this->input->post('top');
$data['ts'] = $this->offapp_database->get_tasks();
$data['u'] = $this->offapp_database->usermaster();
print_r($data['ts']);
exit;
$myTable= '<table><tr><td >TASK NAME</td><td >ASSIGNED TO</td><td >CREATED BY</td></tr>';

 foreach($ts->result() as $tk)
     {  
     if ($tk->status ==  0 ) {         
     $myTable.= '<tr><td >'.$tk->taskname.'</td><td >';  foreach($u->result() as $usr)
     { if ($usr->id ==  $tk->assignto) {echo $usr->fname;}}
     $myTable.= '</td><td >';
    foreach($u->result() as $usr)
     { if ($usr->id ==  $tk->createdby ) {echo $usr->fname;}}
     $myTable.=' </td></tr>';
     $myTable.='</table>';
     echo $myTable ;
}
   }    
 }
在这里,我试图在视图页面的div“tableprint”中显示分配给变量$myTable的表。 这是我得到的输出:

CI_DB_mysqli_结果对象([conn_id]=>mysqli对象([infected_rows]=>108[client_info]=>mysqlnd 5.0.11-dev-20120503-$id:76b08b24553bd41fc93cccd5bac2fe7a$[client_version]=>50011[connect_errno]=>0[connect_error]=>0[error]=>0[error]=>0[error]=>0]=>0[error\error\error\error\u list]=>Array()[field\u count]=>19[主机信息]=>本地主机通过TCP/IP[info]=>[insert_id]=>0[server_info]=>5.5.5-10.1.16-MariaDB[server_version]=>5050505[stat]=>正常运行时间:639个线程:1个问题:11个慢速查询:0个打开:20个刷新表:1个打开表:每秒13个查询平均值:0.017[sqlstate]=>00000[protocol_version]=>10[thread_id]=>3[警告计数]=>0[结果id]=>mysqli\u结果对象([current\u field]=>0[field\u count]=>14[length]=>77[type]=>0[result\u array]=>array()[result\u Object]=>array()[custom\u result\u Object]=>array()[current\u row]=>0[num\u rows]=>


请帮我知道我哪里出错了

你不能。你似乎对网页的生成和处理方式不太了解,根据你的回答,我相信是AJAX在你的头脑中混合了一些东西

PHP代码由服务器解释。 JS代码由浏览器解释

然而,AJAX使从JS代码调用PHP代码成为可能,我相信这正是让您困惑的地方

AJAX包括从JavaScript代码发送HTTP请求和接收HTTP响应,这允许开发人员向PHP脚本发送数据和接收其他数据

但是请记住,当您这样做时,JS使用的唯一PHP代码就是响应AJAX请求的代码。页面中的PHP代码不能被浏览器神奇地解释为可以使用AJAX发送的数据


更让我想到的是,您试图在不理解AJAX的情况下应用AJAX的原因是,您在AJAX调用之后收到的数据可能是由PHP发出和传输的,为什么不在PHP代码发送到页面之前,在该res数据上应用您想应用的PHP代码呢?

您不能。你似乎对网页的生成和处理方式不太了解,根据你的回答,我相信是AJAX在你的头脑中混合了一些东西

PHP代码由服务器解释。 JS代码由浏览器解释

然而,AJAX使从JS代码调用PHP代码成为可能,我相信这正是让您困惑的地方

AJAX包括从JavaScript代码发送HTTP请求和接收HTTP响应,这允许开发人员向PHP脚本发送数据和接收其他数据

但是请记住,当您这样做时,JS使用的唯一PHP代码就是响应AJAX请求的代码。页面中的PHP代码不能被浏览器神奇地解释为可以使用AJAX发送的数据

更让我想到的是,您试图在不理解的情况下应用AJAX的原因是,您在AJAX调用后收到的数据可能是由PHP发出和传输的,为什么不应用您希望在该res数据上应用的任何PHP代码呢,在PHP代码将其发送到页面之前?

在中生成HTML并返回

然后,在AJAX回调中,使用以下内容设置html:

在中生成HTML并返回它

然后,在AJAX回调中,使用以下内容设置html:


您应该更清楚地问一个问题,因为我知道您的函数是一个javascript函数,您可以在代码中这样调用它

function selectHandler() {
  var selectedItem = chart.getSelection()[0];
  if (selectedItem) {
    var topping = data.getValue(selectedItem.row, 0);
    $.post("http://localhost/offlearn/index.php/ctrl_offapp/trail2", {
      top: topping,  
    }, function(res, status) {
      //alert(res);
      test(res);
    });
  }
}

您应该更清楚地问一个问题,因为我知道您的函数是一个javascript函数,您可以在代码中这样调用它

function selectHandler() {
  var selectedItem = chart.getSelection()[0];
  if (selectedItem) {
    var topping = data.getValue(selectedItem.row, 0);
    $.post("http://localhost/offlearn/index.php/ctrl_offapp/trail2", {
      top: topping,  
    }, function(res, status) {
      //alert(res);
      test(res);
    });
  }
}

谢谢你的回复。“我想我必须学一点AJAX才能知道它是如何工作的。”AnnaMary如果他的答案对你有帮助,你应该投票表决或者选择它作为答案谢谢你的回答。“我想我必须学一点AJAX才能知道它是如何工作的。”AnnaMary如果他的答案对你有帮助,你应该投票表决或者选择它作为答案谢谢你的回答。我使用了它,在控制器函数中生成了html表(url中提到过),我使用单个qoutes将html表分配给变量$myTable,除了php行之外,一切都正常工作。我对代码做了一些更改,它工作得更好,但输出不正确。你能帮我找出哪里出了问题吗?谢谢你的回复。我使用了它,在控制器函数中生成了html表(url中提到过),我使用单个qoutes将html表分配给变量$myTable,除了php行之外,一切都正常工作。我对代码做了一些更改,它工作得更好,但输出不正确。你能帮我找出哪里出了问题吗?谢谢你的回答。我的意思是用PHP编写整个top()函数,然后再重复它。这个echo将在AJAX请求中分配给res。现在我已经在mvcThankyou中为responseSorry添加了所有函数——我的意思是用PHP编写整个top()函数,然后echo它。这个echo将在AJAX请求中分配给res