iT邦幫忙

1

jQuery success: function(response)回傳值問題

index.php

<script>
    function polling(){
        $.ajax({
            url:"polling.php?randnumber=<?php echo $randnumber; ?>",
            type: 'GET',
            success: function (response) {
                if(response == true)
                  {
                    window.location.href = "welcome.php";    
                  }else
                    {
                      alert(response);//這裡目前印出 
//<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

                    }

              } 
        })
           
    }
    setTimeout("polling()",1000);
</script>

polling.php

<?php
    require "mysql_connect.inc.php";
    $randnumber = $_GET['randnumber'];
    $result = mysqli_query($conn,"SELECT * FROM `login_record` WHERE `randnumber` = '$randnumber'");
    $row=mysqli_fetch_array($result);
    if($row['username'] != ""){
        
       echo true;
        
    }else{
        
       echo false;
    }

?>

請問各位前輩要如何可以判斷index.php的response為true呢?

我照各位前輩說的使用0或1但是印出的前面還有一長串@@...
https://ithelp.ithome.com.tw/upload/images/20190605/20112444s2Yo5czepI.jpg)
我解決了原來是我在mysql_connect.inc.php多寫了一行....感謝各位前輩

0
dragonH
iT邦大師 7 級 ‧ 2019-06-05 09:49:59
最佳解答

跟後端溝通最好是用 json 的格式會比較好

另外

你確定 php 能用 return 回傳值嗎

我怎麼印象中是用 echo

<?php
  require "mysql_connect.inc.php";
  $randnumber = $_GET['randnumber'];
  $result = mysqli_query($conn,"SELECT * FROM `login_record` WHERE `randnumber` = '$randnumber'");
  $row=mysqli_fetch_array($result);
  if($row['username'] != ""){
    // return true;
    echo json_encode(array('result' => true));  
  }else{
    // return false;
    echo json_encode(array('result' => false));
  }
?>
看更多先前的回應...收起先前的回應...
bro278911 iT邦新手 5 級 ‧ 2019-06-05 09:59:36 檢舉

我原本是用echo但是回傳值前面都會多出<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />false或true

bro278911 iT邦新手 5 級 ‧ 2019-06-05 10:00:01 檢舉

重複傳(請忽略)

dragonH iT邦大師 7 級 ‧ 2019-06-05 10:09:03 檢舉

這我就不知道了

剛測試用 return 完全沒東西

連你說的那行也沒有

上面那個會回傳 json

{ result: true }

{ result: false }

bro278911 iT邦新手 5 級 ‧ 2019-06-05 10:16:17 檢舉

OK~謝謝前輩我回家試試/images/emoticon/emoticon41.gif

bro278911 iT邦新手 5 級 ‧ 2019-06-05 13:58:38 檢舉

我試了前輩的方法但是前面依然有一長串
https://ithelp.ithome.com.tw/upload/images/20190605/20112444Ytv1uOJNE3.jpg

dragonH iT邦大師 7 級 ‧ 2019-06-05 14:01:15 檢舉

你直接在 網址列 輸入

你要呼叫的後端位置

polling.php?randnumber=<?php echo $randnumber; ?>

記得換上變數

然後看瀏覽器 console 拿到什麼

如果只有

{result: true}

那我想應該是你其他東西造成的

bro278911 iT邦新手 5 級 ‧ 2019-06-05 14:33:33 檢舉

謝謝前輩我找到了錯誤了~/images/emoticon/emoticon41.gif

dragonH iT邦大師 7 級 ‧ 2019-06-05 14:34:52 檢舉

/images/emoticon/emoticon12.gif

0
小魚
iT邦高手 1 級 ‧ 2019-06-05 07:49:17

true跟false在不同語言好像會有不同解讀,
最好用0跟1

bro278911 iT邦新手 5 級 ‧ 2019-06-05 08:50:53 檢舉

謝謝前輩回答我工讀完回家試試

bro278911 iT邦新手 5 級 ‧ 2019-06-05 14:03:59 檢舉

我找到錯誤了謝謝前輩/images/emoticon/emoticon41.gif

0
浩瀚星空
iT邦大師 1 級 ‧ 2019-06-05 09:10:57

js跟後端應用之間的溝通。無法用布林值的傳送方式。
認真來說只能傳送數值或是字串。
(你可參照post或是get能傳送的值來決定。)

所以你要嘛就直接用json來接受值。(json可容許布林值,雖然也是字串傳回)
要嘛就直接用0 1處理了。

bro278911 iT邦新手 5 級 ‧ 2019-06-05 10:03:44 檢舉

謝謝前輩我回家試試看~

bro278911 iT邦新手 5 級 ‧ 2019-06-05 14:00:49 檢舉

我學到了謝謝前輩/images/emoticon/emoticon41.gif

0
himegi
iT邦見習生 0 級 ‧ 2019-06-07 07:06:37

在php裡面用
return json_encode(true);
就可以在js得到true

bro278911 iT邦新手 5 級 ‧ 2019-06-07 23:45:29 檢舉

感謝前輩學到了/images/emoticon/emoticon41.gif

我要發表回答

立即登入回答