我正在努力解决这个问题,因为我正在跟踪别人的代码,如果有人可以帮助我,我会很感激。
基本上我有一个显示预订列表的Jqgrid,当您双击一行时,它会打开一个jqdialog,显示有关其预订的所有详细信息。
我定义了一个变量,这是我想传递给php脚本的预订参考。
var brData = rowData['bookref'];
然后我试图通过ajax发送这个:
function getGridRow(brData) {
$.ajax({
// Request sent from control panel, so send to cp.request.php (which is the handler)
url: 'scripts/php/bootstrp/all.request.php',
type: 'POST',
data: {
ft: "getDGRow",
type: 'POST',
data: 'fnme=getDGRow&row_data='+brData,
//row_data: rowData,
id: null,
condition: null
},
dataType: 'xml',
timeout: 20000,
error: function(){
$('#cp-div-error').html('');
$('#cp-div-error').append('<p>There was an error inserting the data, please try again later.</p>');
$('#cp-div-error').dialog('open');
},
success: function(response){
}
});
all.request.php就是这种情况:
case 'getDGRow':
header('Content-type: text/xml');
DatagridController::getGridRow($_REQUEST['row_data']);
break;
这就是我要传递变量'brData'的地方:
public static function getGridRow($row_data) {
$pdo = new SQL();
$dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);
try {
$query = "SELECT * FROM tblbookings WHERE bookref = '$row_data'";
我现在发现这很令人困惑,所以任何帮助都会非常感激。目前$ row_data是我的php函数是空白的,所以很明显它没有从数据库中选择任何行。
答案 0 :(得分:2)
首先验证javascript函数是否未传递空白变量。尝试提醒变量“brData”。其次,验证ajax调用是否成功,可能是通过使用firebug的控制台。第三,确保PHP接收它并可以进入该功能。你可以尝试
public static function getGridRow($row_data) {
echo $row_data;
exit;
}
在您的PHP文件中并提醒您的HTML中的值。
function getGridRow(brData) {
$.ajax({
//...blah blah blah
success: function(response){
alert(response);
}
});
}
如果您可以从脚本收到警报,我想您可以尝试的最后一件事是 使用PHP脚本发回给您的变量值手动查询数据库。谁知道,生成的查询确实没有结果。