1
我遇到困難,因爲我跟隨某人elses代碼,如果有人可以幫助我,我將不勝感激。PHP/Ajax - 發送一個JQuery值到PHP腳本
基本上我有一個顯示預訂列表的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'";
I現在發現這非常令人困惑,所以任何幫助將不勝感激。目前$ row_data是我的PHP函數是空白的,所以顯然它不是從數據庫中選擇任何行。
感謝您的幫助,我可以確認提醒變量brData警報正確的值,並且ajax調用成功,因爲我已經把response = brData;在成功函數中,這返回正確的值。該值沒有被傳遞給getGridRow函數,因爲echo $ row_data不會返回任何內容。任何想法爲什麼? – nsilva
這是一件好事,你發現問題開始的地方。你需要使用這個調試器,檢查函數是否被調用,或者傳遞給函數的變量是否爲空。 – macinville
好吧,我已將ajax請求更改爲'GET',並在我的getGridRow函數中測試並將echo $ rowdata;它返回正確的行,但仍未選擇行等於預訂參考的所有預訂。 $ query =「SELECT * FROM tblbookings WHERE bookref ='$ rowdata'」,在這一點上$ rowdata是空的,但如果我在這個函數的開始處回顯$ rowdata它給了我正確的預訂參考號......任何想法? – nsilva