[英]jQuery Ajax if else statement not interpreting string correctly
這是一件令人沮喪的事情,因為它涉及到如此基本的內容,但是我想弄清楚為什么它不起作用,所以我扯掉了頭發。
這是對PHP腳本的簡單Ajax調用。 當結果返回時,在回調中有一個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";
}
?>
檢查php標記外是否有空格
即之前<?php
之后?>
我認為您應該添加dataType:"text"
:
$.ajax({
url: "getcompleted.php",
type: "POST",
data: {eMail: eMail},
dataType:"text", // <-----add this too
當然,您必須trim
從ajax調用返回的文本:
if ($.trim(data) == "nothing"){
只需在代碼中使用exit
,如果您不返回任何內容,然后在代碼之后exit
,效果會更好。
在您的情況下,應該是這樣的。
else {
echo "nothing";
}
exit;
嘗試這個:
如下使用“ nothing”將“ nothing”括起來,使用單引號代替雙引號:
在JQuery中:
if (data == 'nothing'){
在PHP中:
echo 'nothing';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.