2017-09-01 237 views
-1

不返回任何東西,這是對Ajax的簡單的測試,我想送我的index.php變量t,讓我process.php和警報數字15的數據(T),當我點擊鏈接,但我的問題是沒有任何警告在阿賈克斯

這是我的index.php

<head> 
<meta charset="UTF-8"> 
<title>Title</title> 
<script src="jquery-3.2.1.min.js"></script> 
<script> 
    $(document).ready(function() { 
     var t = 10; 
     $("#btn").click(function() { 
      $.ajax({ 
       type:'post', 
       url:'process.php', 
       data:{ 
        't':t 
       }, 
       success:(function (response) { 
        alert(response); 
       } 
      }) 
     }) 
    }) 
</script> 

<button id="btn">Click!</button> 

這是我process.php像下面

<?php 
$res = $_POST['t'] + 5; 
return $res 
?> 
+0

你得到任何錯誤控制檯?也可以嘗試添加'error:function'並查看你得到的錯誤 –

+0

您可以指向任何**在PHP中使用「return」而不是輸出內容來生成頁面響應的示例嗎?發佈前請詳細研究。 –

+1

你需要養成[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)的習慣,它可以幫助你解決你的問題。您將獲得積分,其他人將被鼓勵幫助您。 –

回答

3

更改代碼: -

1.jQuery: -

$(document).ready(function() { 
    var t = 10; 
    $("#btn").click(function() { 
     $.ajax({ 
      type:'post', 
      url:'process.php', 
      data:{'t':t}, 
      success:function (response) { //remove (
       alert(response); 
      } 
     }); 
    }); 
}); 

2.PHP: -

<?php 
$res = $_POST['t'] + 5; 
echo $res; //use echo rather than return 
?> 

原因: -

return用於從函數返回一個值到另一塊的PHP代碼。 jQuery不是在服務器上PHP代碼執行的一部分,所以它不知道什麼是真的在服務器端。 jQuery正在等待呈現的服務器響應,這是echo提供的響應。

注: -做這些更改後,請檢查瀏覽器控制檯,而運行AJAX,看看有沒有什麼錯誤發生的呢?如果是與我們

+0

@sepehr請你檢查我編輯的答案。請注意'注意'部分 –

1

一)股份變動的代碼與下面的代碼

$(document).ready(function() { 
    var t = 10; 
    $("#btn").click(function() { 
     $.ajax({ 
      type:'post', 
      url:'process.php', 
      data:{ 
       't':t 
      }, 
      success:(function (response) { 
       alert(response); 
      }) //Close brace missing 
     }) 
    }) 
}); 

2)改變回報呼應

+0

您錯過了一個密碼。它應該工作。嘗試一下 – KMS

+0

OP應該「用下面的代碼更改他們的代碼」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

1
$(document).ready(function(){ 

      $("#btn").click(function(){ 
       var t = 10; 
      $.ajax({ 
        type:'post', 
        url:'process.php', 
        data:{ 
         t:t 
        }, 
        success:(function (response) { 
         alert(response); 

       // you didnt close) 
        }) // close of success 
      })// close of ajax 

     })// close of click 

    }); // close of document 

Process.php

<?php 
$res = $_POST['t'] + 5; 
echo $res; 
?> 
+0

雖然此代碼可能會回答問題,但爲何和/或代碼如何回答問題提供了其他上下文,這可以提高其長期價值。 –

0

你應該像t一樣添加jQuery他的

<script src="jquery-3.2.1.min.js"></script> 

如果您確實已下載並將文件放在同一目錄中。

您可以從CDN中包括,如果你不想下載。 用這個代替:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

和修復您的JS代碼:(刪除多餘的 '}' ...)

$(document).ready(function() { 
     var t = 10; 
     $("#btn").click(function() { 
      $.ajax({ 
       type:'post', 
       url:'test.php', 
       data:{ 
        't':t 
       }, 
       success:(function (response) { 
        alert(response); 
       }) 
      }) 
     }); 
    });