所以这是我曾经尝试过的最艰难的事情,经过一天的搜索,我找不到任何答案。请注意,我正在使用一些自定义的jQuery API,并将解释它的作用。
安装程序是一个包含jQuery函数的php页面。该jQuery函数调用API以基于我单击的行返回结果(它是jQgrid,基本上看起来像在线excel表)。这工作正常,但目标是将结果从jQuery函数中获取并将其存储在PHP变量中。我只是一无所知......
主要PHP页面
$getUnitID = <<<getUnitID //This is the jQuery function. It is stored in a php variable for use in other functions of the API
function(rowid, selected)
{
var selr= null;
if(rowid != null){
selr = jQuery('#grid').jqGrid('getGridParam','selrow'); //This will give ma a number result based on the row I selected. Works fine.
$.ajax({ // I believe I need to use AJAX so here is my attempt
type: "POST",
url: "getId.php", //This is another PHP page for the reuslt. See below
dataType: "json",
data: {selr:selr},
success: function(data) {
alert (data); // This will successfully show me the row number I chose as an alert. But I don't want an alert, I want it stored as a php variable in my main document to use elsewhere.
}
});
}
}
getUnitID; //End of the function
$grid->setGridEvent('onSelectRow',$getUnitID); //Just an event that calls the function upon clicking the row
$rowResult = ??????? //I need this variable to store the result of that AJAX call or that function call
getId.php
<?php
$rId = $_POST["selr"];
echo $rId;
?>
基本上,我不知道为什么我使用AJAX,因为我的结果仍然停留在主jQuery函数中。如何以上帝的名义在外面找到这个功能?!?!?!?!?!?!?!我需要$_GET
POST
getId.php
加入{{1}}的'{l}'吗?如果是这样,怎么样?
谢谢,我爱你们。
答案 0 :(得分:1)
当您收到AJAX
请求并收到回复时,PHP
已经进入睡眠状态。您无法将数据返回到同一页面的PHP
代码。在PHP已经完成服务器上的工作后,您的jQuery很快就会在客户端计算机上开始执行。
您的JavaScript函数是否存储在PHP变量中并不重要。 PHP将无法获得其输出。只有这样才能启动对该代码的另一个新请求并向其发送值。但是在同一个页面上的同一个请求中,它的 no no 。
如何将该数据发送到另一个PHP页面的示例
//Your existing jQuery
success: function(data) {
// alert (data);
var result=data;
$.ajax({
type: "POST",
url: "anotherpage.php",
data: { data: result }
});
}