PHP / Ajax - 将JQuery值发送到PHP脚本

时间:2012-06-05 16:57:25

标签: php jquery ajax

我正在努力解决这个问题,因为我正在跟踪别人的代码,如果有人可以帮助我,我会很感激。

基本上我有一个显示预订列表的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函数是空白的,所以很明显它没有从数据库中选择任何行。

1 个答案:

答案 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脚本发回给您的变量值手动查询数据库。谁知道,生成的查询确实没有结果。