传递多个复选框值

时间:2016-04-22 19:01:01

标签: javascript php html

我有一个简单的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;等等等等。 有什么想法吗?

4 个答案:

答案 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
    });


  });
});

这是你演奏的小提琴:(打开你的控制台)

https://jsfiddle.net/ismaakeel/ejscjw3y/4/