微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我对它所在的页面进行了成功的 AJAX 调用,但 php 不会执行

如何解决我对它所在的页面进行了成功的 AJAX 调用,但 php 不会执行

也许标题没有意义... 加载 page.PHP 时,它应该返回内容 A。但是如果用户单击 page.PHP 上的按钮“B”,则会触发 JS 对 page.PHP?param=B 进行 AJAX 调用。 page.PHPPHP 代码,如果它被 ?param=B 请求,它应该加载内容 B。在网络选项卡中,它显示确实向 page.PHP?param=B 发送了一个请求,但代码没有运行。

本质上我想做的是在 page.PHP显示基于 url 参数排序的数据。 我希望这是有道理的,哈哈。

page.PHP

<script>
     function sort(selection) {
         //idk y this doesn't work
         let xmlhttp = new XMLHttpRequest();
         xmlhttp.open("GET","/test.PHP?sortby=" + selection);
         xmlhttp.send();
     }
</script>

<input type="button" onclick=sort(this.value) value="A"></input>


<?PHP
if (empty($_GET)) {
//query DB for content,don't sort,display

} else if (isset($_GET['sortby'])) {
if ($_GET['sortby'] === 'A') { //query db for content,sort by A and display } 
if ($_GET['sortby'] === 'B') { //query db for content,sort by B and display } 
?>

最后一点,当我在 url 栏中手动输入 page.PHP?sortby=A 并按回车键时,PHP 运行正常,但是当 AJAX 调用相同的 url 时,PHP 不会运行。

解决方法

Ajax 请求的要点是浏览器不会导航到新页面,而是由 JavaScript 处理响应。

您根本没有处理响应。

您需要等待响应加载,然后对其进行处理。

function loadHandler() {
    const data = this.response; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response
    console.log(data);
}

xmlhttp.addEventListener("load",loadHandler);

在上面的例子中,我只是将它记录到控制台。通常你会想要insert it into the HTML document

通常,您不希望从 Ajax 请求中返回整个 HTML 文档。通常以 JSON 结构返回一些数据并使用它来更新页面。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?