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

标签 javascript php jquery ajax codeigniter

这是我第一次使用 AJAX。我完全不明白这里的数据流。请帮忙,我正在 codeigniter 中执行此操作 这是我的代码编辑:

我的 View 页面中的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 是我的 Controller 功能。

你能帮忙吗?

**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 ;
}
   }    
 }

模型中的函数:

    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;
  }

这里我尝试在 View 页面的 div 'tableprint' 中显示分配给变量 $myTable 的表。 这是我得到的输出:

CI_DB_mysqli_result 对象 ( [conn_id] => mysqli 对象 ( [affected_rows] => 108 [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $ [client_version] => 50 011 [连接错误号] => 0 [connect_error] => [errno] => 0 [error] => [error_list] => Array ( ) [field_count] => 19 [host_info] => 通过 TCP/IP 的本地主机 [info] => [insert_id] = > 0 [server_info] => 5.5.5-10.1.16-MariaDB [server_version] => 50505 [stat] => 正常运行时间:639 线程:1 问题:11 慢速查询:0 打开:20 刷新表:1 打开表:平均每秒 13 个查询:0.017 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 3 [warning_count] => 0 ) [result_id] => mysqli_result Object ( [current_field] => 0 [field_count] = > 14 [长度] => [行数] => 77 [类型] => 0 ) [结果数组] => 数组 ( ) [结果对象] => 数组 ( ) [自定义结果对象] => 数组 ( ) [当前行] => 0 [num_rows] => [row_data] => )

请帮我知道哪里出了问题

最佳答案

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

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

但是,AJAX 使得从 JS 代码调用 PHP 代码成为可能,我相信这就是让您感到困惑的地方。

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

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

让我更加假设您在不了解情况下尝试应用 AJAX 的是,您在 AJAX 调用后收到的数据可能是由 PHP 生成和传输的,为什么不应用您想要在该资源上应用的任何 PHP 代码在 PHP 代码将数据发送到您的页面之前?

关于javascript - 如何在同一页面的 PHP 代码中使用 AJAX 回调中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45168208/

相关文章:

javascript - 如何在 Mongoose MongoDb NodeJS 中获取数组中集合中的连接对象

javascript - Window.open with 'noopener' 打开一个新窗口而不是新标签

php - Uploadify:写入完成但没有上传文件

php - 如何获取当前用户在MYSQL中的第一个进程号?

php - 如何作曲安装最新的 require-dev 和最低的 require-dev

jquery - jquery 中是否有一个函数,如果至少一个 Deferreds 得到解决,则返回一个 promise ?

javascript - 如何使用 Javascript 解析 JSON 文件

javascript - 获取元素的 `id` 属性

javascript - 如何在 JavaScript 循环中添加不同的延迟?

javascript - 如何在 chrome 扩展中使用 AJAX 向 ‘My XAMPP server’ 发送 GET 请求