jQuery Ajax返回整个页面

我有一个jquery-ajax函数,它将数据发送到php脚本,问题在于返回值,它返回整个页面而不是单个值。

感谢您的时间和帮助。

$("#ajaxBtn").click(function(){ var inputText = $("#testText").val(); $.ajax({ type: "POST", url: "index.php", data: "testAjax="+inputText, dataType: "html", success: function(html){ alert(html); } }); }); 

这是它的工作原理。 您正在通过AJAX请求index.php ,因此您将获得index.php所有内容。

如果您想要一个特定的值,请创建一个仅输出该值的新PHP页面,并请求该URL的内容。

那么当你在开头的index.php上有这个时:?

  

如果此脚本正在输出更多文本,那么当然这也将通过Ajax调用接收。 您可以在echo之后放置exit()以防止脚本被进一步处理:

 if (isset($_POST["testAjax"])) { echo $_POST["testAjax"]; exit(); } 

还使用dataType: 'text'作为返回的值显然不是HTML。


或者像其他人建议的那样,创建一个负责处理Ajax请求的新页面。 如果您所做的不仅仅是输出接收到的值(即更复杂的操作),那么无论如何都应该这样做。

Sophia,在您的情况下,您不应将数据发送到php文件,如果通过Web浏览器查看,则显示网站页面。 您应该将您的信息发送到只返回您希望返回的数据的php文件。

因此,而不是“index.php”,创建一个名为“my-ajax-script.php”的文件。 该文件应包含任何必要的“include()”文件以连接到数据库和您的php函数文件(即:用于清理POST数据)。 然后该文件应具有处理POST数据的代码,并使用一些html标记回显数据。 此数据将插入到您现有的DOM(html标记)中。