我正在使用jQuery post方法在MySQL中創建記錄。當我使用==
評估PHP的輸出時,所有三個條件都能正常工作。但是,當我使用===
時,前兩個條件返回false
。我如何將正確的數據類型從PHP傳遞給Javascript?如何將正確的數據類型從PHP傳遞到Javascript
的jQuery:
$("#form").validate({
submitHandler: function(form) {
// do other stuff for a valid form
$.post('inc/process_form.php', $("#form").serialize(), function(data) {
//alert(data);
if (data == 1) {
$('#results').html("Success");
} else if (data == 2) {
$('#results').html("No Success");
} else {
$('#results').html(data);
}
});
}
});
這是在PHP(我已經被截斷,只顯示執行條件):
$value = $stmt->execute();
if ($value === TRUE) {
echo 1; //success
} else {
echo 2; //failure
}
對於將數據從PHP腳本傳遞迴javascript的一般問題,您應該查看PHP的['json_encode'](http://php.net/manual/en/function.json-encode.php)和jQuery的['parseJSON'](http://api.jquery.com/jQuery.parseJSON/)。這個二重奏可以讓你傳遞更復雜的數據結構,並自動處理類型(字符串,數字,布爾值)。國際海事組織(IMO)提供的簡易性使其值得一提,即使在這種簡單的情況下,您只能傳遞一個值。 – grossvogel
閱讀文檔 - http://api.jquery.com/jQuery.post - 它看起來像'function(data){...}的數據''總是以字符串形式返回'dataType類型:String類型來自服務器的數據。默認值:智能猜測(xml,json,script,text,html).',所以看起來你不能返回一個整數,因此'==='將總是以''1!== 1'的形式失敗。您需要做@grossvogel建議的內容並返回json編碼的字符串,然後解析它以獲得整數類型 – Sean
要擴展@ Sean的評論:如果您要從PHP腳本返回json,則可以設置'dataType'參數到'json',甚至不必使用'$ .parseJSON()'。它會自動解析並且'data'將會是一個很好的JavaScript對象,它具有正確類型的屬性。 – grossvogel