Javascript 如何在同一页面的PHP代码中使用AJAX回调中的值?
这是我第一次使用AJAX。我完全不了解这里的数据流。请帮帮我,我在codeigniter里做这件事 这是我编辑的代码: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
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