【问题标题】:how to get the value of a checkbox with php and xml如何使用 php 和 xml 获取复选框的值
【发布时间】:2017-11-07 20:04:02
【问题描述】:

我只是在学习 PHP、XML、AJAX 等,并且我有一个总体上可以正常工作的表单。但我无法将复选框的值/状态传递给我的 PHP 脚本。

请注意,我的服务器似乎无法使用 POST 方法(我正在单独研究)。所以我正在使用GET。希望这不相关,但只是想注意以防万一。

这是我的简化 HTML 文件:

<html>
<head>
<script>
function showUser(u) {
    alert(u.value);
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","checkbox_test.php?u=" + u.value,true);
        xmlhttp.send();
        return false;
}
</script>
</head>
<body>

<form method="get" onsubmit="return showUser(this.checkboxID)">
    <input id="checkboxID" name="checkboxName" value="checkboxValue" type="checkbox">
    <input type="submit" value="Submit">
</form>
<div id="txtHint"></div>
</body>
</html>

这是我的简化 PHP 文件:

<!DOCTYPE html>
<html>
<body>
<?php
    $check = $_GET['u'];
    if(isset($check)){
            echo 'True';
        }else{
            echo 'False';
        }
?>
</body>
</html>

【问题讨论】:

  • 你为什么在这里使用ajax而不只是提交表单?
  • “我的服务器不能使用 post 方法”。除非您有非常不寻常的设置,否则这听起来不太可能。查看服务器端的$_POST 变量将获得通过POST 提交的任何内容。无论如何,当你说“有麻烦”时,你到底是什么意思?变量是否肯定在您的 ajax 请求中发送(您可以检查浏览器的网络选项卡以查看请求详细信息)?通话是否成功完成?什么会被退回?如果您真正想要返回的只是“true”或“false”,那么将所有&lt;html&gt; 等标签都包含在您的 PHP 文件中是没有多大意义的。
  • 首先,阿迪森说了什么。其次,不要使用u.value,而是需要获取boolean的值来查看它是否被选中,所以解析一个u.checked返回的boolean。您可以console.log(u.checked),然后在发送前检查您的控制台(F12Cmd+Alt+I)以查看结果。
  • 感谢大家的回复! @nogad 我正在使用 Ajax 和 PHP,因为这是一个更大的项目的一个大大简化的部分,我正在学习使用 Ajax 仅更新页面的一部分,并且我正在学习编写 PHP 脚本。因此,脱离上下文它看起来确实有点傻,但我认为这对于更大的项目是有意义的。最后,让 u.checked 成功了。 (我不知道可以在 htmlInputElements 上查询的各种属性,但我找到了文档,现在它更有意义了..)
  • @ADyson 关于我在使用 POST 方法时遇到的问题,在我的表单提交行中使用 method="post" 时出现“405 Method Not Allowed”错误。 &lt;form method="post" onsubmit="return showUser(this.checkboxID)"&gt;我不能说我明白为什么会这样。我认为这意味着我的服务器未设置为允许 POST 请求,但我没有看到任何影响服务器选项的选项。

标签: javascript php ajax xml forms


【解决方案1】:

使用 u.checked 作为输入用来确定复选框状态的属性,u.value 将返回 checkboxValue

<input id="checkboxID" name="checkboxName" value="checkboxValue" type="checkbox">

【讨论】:

  • u.checked 成功了!谢谢你。找到关于 htmlinputElement 的文档,其中阐明了可用的各种属性!
猜你喜欢
  • 1970-01-01
  • 2014-09-05
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多