2017-09-01 162 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); 
       }) 
      }) 
     }); 
    });