簡體   English   中英

jQuery Ajax if else語句無法正確解釋字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM