[英]Passing variable from Ajax to Php
我看了所有前面的示例,但仍然沒有骰子,而且我有一個基本的php問題。
例子在這里 。 我希望能夠單擊一個表並顯示如下選項:
在此代碼中顯式聲明表名是可行的:
if($_GET['action'] == 'getOptions'){
$category = $_GET['category'];
$query = "SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='headfirstjson' AND
**`TABLE_NAME`='AmericanOilProduction'**";
$result = db_connection($query);
//echo $result;
$Options = array();
while ($row = mysql_fetch_array($result)) {
$Options[] = $row;
}
echo json_encode(array("Options" => $Options));
exit;
}
AJAX傳遞變量的這種組合不:
AJAX:
function getOptions(category){
var category = category.value
$.ajax({
url: "getData.php?action=getOptions",
type: "GET",
dataType:"json",
data: {category:category},
success: function(json){
$.each(json.Options,function(){
var option = "<option>"+this.COLUMN_NAME+"</option>"
$('#options').append(option)
});
}
});
}
PHP:
if($_GET['action'] == 'getOptions'){
**$category = $_GET['category']**;
$query = "SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='headfirstjson' AND
`TABLE_NAME`='**.$category.**'";
$result = db_connection($query);
//echo $result;
$Options = array();
while ($row = mysql_fetch_array($result)) {
$Options[] = $row;
}
echo json_encode(array("Options" => $Options));
exit;
}
如果有人可以幫助我,那就太好了! 謝謝。
您正在嘗試將$category
和其周圍的期間連接起來。 雙引號將擴展變量,使表名稱為“ .AmericanOilProduction”。 更改代碼,使其看起來像這樣,刪除連接運算符。 這里不需要它們。 您也應該清理輸入內容...
if($_GET['action'] == 'getOptions'){
$category = $_GET['category'];
$query = "SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='headfirstjson' AND
`TABLE_NAME`='$category'";
$result = db_connection($query);
//echo $result;
$Options = array();
while ($row = mysql_fetch_array($result)) {
$Options[] = $row;
}
echo json_encode(array("Options" => $Options));
exit;
}
我認為 jQuery在URL本身以及data:
選項中都存在URL參數而感到困惑。
嘗試將action
參數放入data:
選項,而不是:
data: {
category: category,
action: 'getOptions'
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.