Ajax到PHP在同一页面上

我正在尝试将变量发送到进行AJAX调用的同一页面。

只有当我分离PHP脚本(例如process.php并相应地更改AJAX url )时,我才会收到成功的结果。

 index.php    $(function() { $('form').submit(function(e) { e.preventDefault(); $.ajax({ type : 'POST', url : 'index.php', data : $(this).serialize(), dataType : 'json', encode : true }) .done(function(data) { $('#result').html(data); }) }); });     

是否有可能同一页面捕获和处理我们使用AJAX传递的变量?

您在AJAX设置中设置dataType : json ,以便您应该echo json对象而不是String(HTML)。
使用exit()而不是echo ,并将PHP放在页面的最顶层。 因此,在检查$_POST['name']存在之前,不会回显任何HTML。

另一件事是你的$data = array()转换为该行的字符串:

 $data = 'You entered:' . $_POST['name']; 

它应该是$data[] = ...

       

add die(); 函数和使用$ _SERVER [‘HTTP_X_REQUESTED_WITH’]来检测ajax请求。 alos把serialize()放在ajax函数的一边来获取数据

  var data = ''; $(function() { $('form').submit(function(e) { e.preventDefault(); data = $(this).serialize(); $.ajax({ type : 'POST', url : 'index.php', data : data, dataType : 'json', encode : true }) .done(function(data) { $('#result').html(data); }) }); });