【问题标题】:XMLHTTPrequests in Javascript/PHP with input parameters带有输入参数的 Javascript/PHP 中的 XMLHTTPrequests
【发布时间】:2016-05-13 05:45:53
【问题描述】:

我正用这个把头撞到墙上。我的问题的答案应该是herehere,我不想重复发布。但是由于某种原因,我的代码虽然看起来与这些示例完全相同,但却无法正常工作。

我正在尝试通过 xmlhttprequest 将 Javascript 函数中的 ID 传递给 PHP 函数。这是我的 Javascript 函数:

function acceptRequest(id_Request)
{
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "acceptRequest.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onreadystatechange = function()
{
    if (xhttp.readyState == 4 && xhttp.status == 200)
    {
        alert("Request accepted.");
    };
};
xhttp.send("id_Request="+id_Request);
}    

我的 PHP 文件,acceptRequest.php,如下所示:

<?php
echo $_POST['id_Request'];
?>

发生的情况是 Javascript 函数确实发送了警报:“请求已接受”。但是,PHP 函数不会回显任何内容。我在这里错过了什么???

【问题讨论】:

    标签: javascript php ajax xmlhttprequest


    【解决方案1】:

    我猜问题是你的函数没有传递任何 id。我确定在您的 php/javascript 中。您要传递的 id 在某个输入框中。

    然后在你的js函数中,你可以说

    Var id = document.getElementById("id-of_input").value;

    然后您可以将其附加到您的 Ajax 请求中。

    我还注意到您的 Ajax 没有从 php 得到响应。

     if(xmlhttp.readyState == 4 &&.      xmlhttp.status == 200){
       document.getElementById(where).innerHTML = xmlhttp.responseText;
    

    }

    在你的情况下,它应该是 xhttp.responseText;

    该行仅表示您希望显示 Ajax 请求结果的位置。

    【讨论】:

    • 这是有道理的,但即使我有它 echo "test" 或其他一些常量,它仍然不会打印任何东西。
    • 我看到了问题。在您的 php 脚本中,不是连接到您的 Ajax 请求的脚本。响应不会在哪里创建一个 div,并给它一个 id。现在在你的 js 函数中,代码说 if xhttp=4&200... 将此代码放在该语句中,var theDiv = document.getElementById("id_of_the_new_div")。然后Div.innerHTML = xhttp.responseText;现在你可以得到来自 Ajax php 的回复了。
    • 代码,已修改...希望对您有用
    猜你喜欢
    • 2019-07-10
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    相关资源
    最近更新 更多