jQuery Ajax返回整个页面

Sop*_*ish 22 php jquery return-value

我有一个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);
    }
  });
});         
Run Code Online (Sandbox Code Playgroud)

cee*_*yoz 36

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

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


Fel*_*ing 12

那么当你index.php在开始的时候有这个吗?:

<?php 
   if (isset($_POST["testAjax"])) { 
       echo $_POST["testAjax"]; 
   } 
?>
Run Code Online (Sandbox Code Playgroud)

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

if (isset($_POST["testAjax"])) { 
    echo $_POST["testAjax"];
    exit();
}
Run Code Online (Sandbox Code Playgroud)

也可以使用dataType: 'text'返回的值显然不是HTML.


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


sup*_*led 6

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

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