【问题标题】:Call PHP function using AJAX xmlhttprequest使用 AJAX xmlhttprequest 调用 PHP 函数
【发布时间】:2018-04-03 08:17:27
【问题描述】:

我的问题是我不确定如何从 JS 调用我的 php 函数。我正在尝试学习xmlhttprequest,但我的代码似乎有问题:

HTML:

<input type="button" id="btn" value="Click">

JS:

window.onload = initForms;

function initForms(){
    document.getElementById("btn").onclick = doSomething;
}

function doSomething(){

    var xmlhttp;

    if (window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    } 
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            // response
        }
    }
    try {
        xmlhttp.open("GET", "test.php", true);
        xmlhttp.send(); 
    } catch (e) {
        alert(e);
    }
}

PHP:

<?php

echo "Echo!";

编辑:我的问题是“回声”没有出现,所以 test.php 似乎没有被调用?!为什么不? 编辑:在 Firefox 控制台中,我收到以下错误:“XML Parsing Error: no root element found”。不知道该怎么做(是的,我用谷歌搜索了它..)

【问题讨论】:

  • 你的问题是?
  • 在浏览器中使用开发者工具查看是否有响应。您可能需要设置一个标头以使服务器输出 json 而不是 HTML
  • 你真的对响应做了什么吗?例如,在当前显示// Response 的地方,您必须对响应进行实际操作,例如console.log(xmlhttp.response);
  • 我在响应中有一个 innerHTML 有效。所以似乎有一个响应,我只是没有看到来自 .php 文件的任何内容。 “回声!”没有显示。
  • snajps:谢谢!我用 console.log(xmlhttp.response); 替换了 innerHTML;现在它可以工作了。我不知道为什么,但现在我会接受它;)再次感谢您。

标签: php ajax xmlhttprequest


【解决方案1】:

"//响应,要对响应实际做点什么,比如console.log(xmlhttp.response);"

console.log 毫无价值,尤其是当您想对数据进行处理时。

getElementById("idName").innerHTML = xmlhttp.response;

更可能是 OP 正在寻找的东西。

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 2018-04-29
    • 1970-01-01
    • 2012-08-19
    • 2011-05-08
    • 2011-01-17
    相关资源
    最近更新 更多