我使用ajax調用來從我的mysql數據庫中獲取一些數據。這是我的Ajax調用:不能使用if語句檢查POST數據。
$.ajax({
type: "POST",
url: "fetch.php",
data: id,
success: function(msg) {
var record = JSON.parse(msg);
$("#name").val(record.name);
$("#description").val(record.description);
switch(record.category) {
case ("Residential"):
$("#category").val("residential");
break;
case ("Modernisation & Domestic Extensions"):
$("#category").val("modernisation");
break;
case ("Feasibility Layouts"):
$("#category").val("feasibility");
break;
case ("Master Planning"):
$("category").val("master");
break;
default:
$("category").val("");
};
switch(record.featured) {
case ("y"):
$("#featured").val("y");
break;
default:
$("featured").val("n");
};
}
})
,這是我的PHP文件:
<?php
$dbc = mysqli_connect('XX','XX','XX','XX');
$id = $_POST['id'];
if($dbc) {
$row = fetchDataFromRecordWithId($dbc,$id);
}
else {
echo 'Database error';
}
function fetchDataFromRecordWithId($dbc,$id) {
$q = "SELECT * FROM Projects WHERE id = ".$id;
$r = mysqli_query($dbc, $q);
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
mysqli_close($dbc);
return $row;
}
echo json_encode($row);
?>
一切工作完美無瑕,但很快,當我試圖在我的PHP文件中的if語句添加到檢查是否有任何POST數據比我的ajax調用沒有得到任何迴應。我嘗試了不同的方法:
<?php if(isset($_POST)) { .. my whole php code here .. } ?>
<?php if(!empty($_POST)) { ..my whole php code here .. } ?>
<?php if($_POST) { .. my whole php code here .. } ?>
<?php if($_POST['id']) { .. my whole php code here .. } ?>
但沒有任何工作!當我使用上面列出的任何if語句時,Ajax調用不會獲取json數據。
我無法檢查POST數據,並保持它的樣子,但我想要做的是正確的方式。
這似乎是如果沒有執行語句(但POST數據必須在那裏,因爲我能夠取得$_POST['id']
值,當if語句不使用)。
我也試圖把echo json_encode($row)
以外的聲明,但它也沒有幫助。任何想法有什麼不對?
你能告訴我們實際上失敗的代碼嗎? – 2013-03-17 15:06:13
可以告訴我們錯誤..你正在面臨哪些... – 2013-03-17 15:08:12
請編輯你的問題標題..它的太長.. – 2013-03-17 15:18:19