Javascript将复选框数据表单提交到PHP
我使用javascript编写了一些代码,将复选框表单数据提交到PHP。但是php无法获取数据。以下是我的代码。提前谢谢 HTML代码:Javascript将复选框数据表单提交到PHP,javascript,php,form-data,Javascript,Php,Form Data,我使用javascript编写了一些代码,将复选框表单数据提交到PHP。但是php无法获取数据。以下是我的代码。提前谢谢 HTML代码: <form onchange="fetch()" method="post"> <input type="checkbox" name="formname[]" value="value1" /> <input ty
<form onchange="fetch()" method="post">
<input type="checkbox" name="formname[]" value="value1" />
<input type="checkbox" name="formname[]" value="value2" />
</form>
<script>
function fetch() {
var data = new FormData();
data.append("formname[]", document.getElementsByName("formname[]"));
var xhr = new XMLHttpRequest();
xhr.open("POST", "the url to php code", true);
xhr.send(data);
...
</script>
$result = $_POST['formname']
<script>
function fetch() {
var data = new FormData(document.getElementById("myform"));
var xhr = new XMLHttpRequest();
xhr.open("POST", "the url to php code", true);
xhr.send(data);
...
</script>
$result = $_POST['formname']
AND I found the same result even using:
$result = $_POST['formname[]']
这是一个(稍微改变了一点)的示例,我认为(!)然后可以得到如下值:
$res=$_POST[“复选框”]
const btn=document.querySelector('button');
函数sendData(数据){
const XHR=new XMLHttpRequest(),
FD=新FormData();
//将数据推送到FormData对象中
for(数据中的名称){
FD.append(名称、数据[名称]);
}
//定义成功提交数据时发生的情况
XHR.addEventListener('load',函数(事件){
警报(‘耶!数据已发送,响应已加载’);
} );
//定义发生错误时发生的情况
XHR.addEventListener('error',函数(事件){
警惕(‘哎呀!出问题了’);
} );
//提出我们的要求
open('POST','PHP file');
//发送FormData对象;自动设置HTTP头
XHR.send(FD);
}
btn.addEventListener('click',函数()
{sendData({CHECKBOX:document.querySelector(“input[type=CHECKBOX]”).value});
})
这是一个示例(稍作更改),我认为(!)然后可以得到如下值:
$res=$_POST[“复选框”]
const btn=document.querySelector('button');
函数sendData(数据){
const XHR=new XMLHttpRequest(),
FD=新FormData();
//将数据推送到FormData对象中
for(数据中的名称){
FD.append(名称、数据[名称]);
}
//定义成功提交数据时发生的情况
XHR.addEventListener('load',函数(事件){
警报(‘耶!数据已发送,响应已加载’);
} );
//定义发生错误时发生的情况
XHR.addEventListener('error',函数(事件){
警惕(‘哎呀!出问题了’);
} );
//提出我们的要求
open('POST','PHP file');
//发送FormData对象;自动设置HTTP头
XHR.send(FD);
}
btn.addEventListener('click',函数()
{sendData({CHECKBOX:document.querySelector(“input[type=CHECKBOX]”).value});
})
非常感谢所有试图帮助我的人。我花了一个晚上,找到了解决问题的简单方法。解决方案是在表单中添加id
元素,并在FormData
元素中添加表单id
HTML代码
<form onchange="fetch()" method="post" id="myform">
<input type="checkbox" name="formname[]" value="value1" />
<input type="checkbox" name="formname[]" value="value2" />
</form>
非常感谢所有试图帮助我的人。我花了一个晚上,找到了解决问题的简单方法。解决方案是在表单中添加
id
元素,并在FormData
元素中添加表单id
HTML代码
<form onchange="fetch()" method="post" id="myform">
<input type="checkbox" name="formname[]" value="value1" />
<input type="checkbox" name="formname[]" value="value2" />
</form>
而
var\u dump($result)
显示了什么?onchange=“fetch()”
与
@u\u mulder Hello u\u mulder不正确,它显示为空。如果我使用表单操作,我可以提交表单,PHP代码也可以帮助我打印结果。javascript真的很烦人。@Yuan为什么要用javascript呢?你的
提交按钮在哪里?而var\u dump($result)
显示了什么?onchange=“fetch()”
@u\u mulder不正确,您好,u\u mulder,它显示为空。如果我使用表单操作,我可以提交表单,PHP代码也可以帮助我打印结果。javascript真的很烦人。@Yuan为什么要用javascript呢?你的
提交按钮在哪里?谢谢。这是另一种选择,但页面将被刷新。我的项目在页面上加载了一个地图,它很重。用户需要快速更改复选框选项,并看到不同的结果。因此不允许刷新页面。你有javascritp选项吗?@Yuan我改变了我的答案,希望这能奏效。。。(我不是这方面的专家…)谢谢。这是另一种选择,但页面将被刷新。我的项目在页面上加载了一个地图,它很重。用户需要快速更改复选框选项,并看到不同的结果。因此不允许刷新页面。你有javascritp选项吗?@Yuan我改变了我的答案,希望这能奏效。。。(我不是这方面的专家…)