這是一個令人沮喪的問題,因爲它涉及到如此基本的事情,但我正在試圖弄清楚爲什麼它不起作用。jQuery Ajax if else語句不正確地解釋字符串
這是一個簡單的Ajax調用PHP腳本。當結果回來時,在回調中有一個if-else語句,它應該給出兩個可供選擇的行動方案。出於某種原因,即使PHP腳本中的字符串似乎匹配,if語句也會被忽略。
代碼如下。 PHP腳本正在返回字符串'Nothing',因爲它應該這樣做。 console.log
顯示該字符串正確傳遞給jQuery腳本,但是if/else語句只是在目標<div>
中顯示字符串,而不是隱藏<div>
,因爲它應該這樣做。誰能告訴我我做錯了什麼?我有一個可怕的懷疑,這將是一件非常簡單的事情!
jQuery的
$.ajax({
url: "getcompleted.php",
type: "POST",
data: {eMail: eMail},
success: function(data){
console.log(data)
if (data == "nothing"){
$('#completedAssessDiv').hide();
}
else {
$('#completedAssessContent').html(data);
}
}
});
PHP
<?php
include_once('dbconnect.php');
$email = mysqli_real_escape_string($conn, trim($_POST['eMail']));
$run_feedback_query = "SELECT * FROM users_modules WHERE email = '$email' AND complete = '1' ORDER BY modname";
$run_feedback_check = $conn->query($run_feedback_query);
$feedback_count = $run_feedback_check -> num_rows;
if ($feedback_count > 0) {
while ($row = $run_feedback_check -> fetch_assoc()){
$unitdescrip = $unitcheck['mod_name'];
echo "<div class='assignmentDetail'>" . $row['descrip'] . "</div>";
}
}
else {
echo "nothing";
}
?>
'if($ .trim(data)==「nothing」)' –
嘗試alert(JSON.stringify(data)),看看它包含了什麼 –
嘗試'console.log('#'+ data +'#')'檢查空格 – andrew