2009-06-30 253 views
2

将我的头撞在墙上,看起来很简单。选择多个选项

这就是:

<html> 
    <head></head> 
    <body> 
     <form method="post" action="action.php"> 
      <div><input type="checkbox" name="test" value="Newspaper"> <span >Newspaper</span></div> 
      <div><input type="checkbox" name="test" value="PC"> <span >PC</span></div> 
      <div><input type="checkbox" name="test" value="Home"> <span >Home</span></div> 
      <div><input type="checkbox" name="test" value="Dont_know"> <span >dnunno</span></div> 
      <input type="submit" name="Submit" value="send"> 
     </form> 
    </body> 
</html> 

但是,当我选择一个以上的选项。我在我的print_r($_POST);声明中只看到最后选择的选项,而不是所有选定的选项。 我该如何处理?

更新: 我检查了其余的代码,我看到这是由一些JavaScript完成的。

else if (aform.validatorArr[i][4] == "checkbox") { 
    var fvs = ""; 
    eval("var chkbArray=aform." + aform.validatorArr[i][1] + ";"); 
    if (aform.validatorArr[i][2] == "cb_true") { 
     for (k = 0; k < chkbArray.length; k++) { 
      if (chkbArray[k].checked) { 
       fvs += chkbArray[k].value; 
       console.log(fvs); 
      } 
     } 
     if (fvs == false) { 
      s += aform.validatorArr[i][3] + "\n"; 
     } 
    } 
} 

这就是为什么[]没有添加在我的HTML。但是,我怎么能修改这段代码,以便它可以使用所有的选项?

回答

15

把[]名称后:

<input type="checkbox" name="test[]" value="Newspaper"> 

详情请参阅PHP FAQ

+0

然后你可以foreach($ _ POST [“测试”]为$ test){...} – Sampson 2009-06-30 12:51:46