我有一个简单的html表单,使用复选框:
<form action="demo_form.asp">
<input type="checkbox" name="test[]" value="t1">
<input type="checkbox" name="test[]" value="t2">
<input type="checkbox" name="test[]" value="t3">
<input type="submit" value="Submit">
</form>
目前,如果我检查多个框并单击“提交”,服务器端将获得如下所示的数组:
[t1,t2,t3]
但我希望服务器为每个复选框发布POST。例如,如果我检查了所有3个框,我希望服务器POST&#34; value = t1&#34;然后再次POST为&#34; value = t2&#34;等等等等。 有什么想法吗?
答案 0 :(得分:0)
您在原始帖子正文中获得test[]=t1&test[]=t2&test[]=t3
。 PHP只是将其处理成一个数组,因为你的名字中有[]
。
如果您不想要阵列,请不要使用[]
。您将收到test=t1&test=t2&test=t3
的原始帖子,但$_POST['test']
将包含仅 t3
,因为它将是最后一个值发布该特定密钥名称的正文。
答案 1 :(得分:0)
您需要创建一个新功能,例如
myArray = [t1,t2,t3];
for (var j in myArray){
dynamicPost()
}
function dynamicPost(val){
$.ajax({
type: "POST",
url: url+val,
data: data,
success: success,
dataType: dataType
});
}
以这种方式为每个值创建新帖子。我会工作,或者如果你在你的后端收到这个数组是你需要创建一个for并为每个值进行处理的相同程序,如果我有更多的信息,我会帮助你更多
答案 2 :(得分:0)
<form action="demo_form.asp">
<input type="checkbox" name="value1" value="t1">
<input type="checkbox" name="value2" value="t2">
<input type="checkbox" name="value3" value="t3">
<input type="submit" value="Submit">
尝试为每个复选框使用不同的名称
答案 3 :(得分:0)
看起来你想要实现的目标不能只用PHP来完成,而是借助一些javascript魔法来监听每个复选框的check / uncheck事件,然后发送ajax请求。以下是如何做到这一点:
更改复选框名称,并使用通用类使其唯一:
<form action="demo_form.asp">
<input type="checkbox" name="test1" value="t1" class="checkIt">
<input type="checkbox" name="test2" value="t2" class="checkIt">
<input type="checkbox" name="test3" value="t3" class="checkIt">
<input type="submit" value="Submit">
</form>
然后听取复选框事件:
$(document).ready(function() {
$('.checkIt').bind('click', function() {
var name = $(this).attr('name');
var value = $(this).val();
var status;
if ($(this).is(":checked")) {
status = 'checked';
// checkbox is checked
console.log("Checkbox is checked. Name: " + name + " Value: " + value);
} else {
status = 'unchecked';
// checkbox is not checked
console.log("Checkbox is NOT checked. Name: " + name + " Value: " + value);
}
$.get("demo_form.asp?status=" + status + "&name=" + name + "&value=" + value, function(data) {
//Your server response here
});
});
});
这是你演奏的小提琴:(打开你的控制台)