2014-06-25 184 views
3

目前我有一个包含多个单选按钮的表单,您可以根据需要选择多个单选按钮。以表单发送请求发送多个复选框值

问题是,当我通过我的表单将它们发送给PHP时,PHP仅获取最后一次检查的单选按钮值。我如何获得所有并将它们存储为数组或其他方式?

HTML:

<form action="php/submit.php" method="post" enctype="multipart/form-data"> 
<div class="spacing"> 
    <a class="applicationLabel">Position(s) interested in:</a><br> 
    <input name="position" value="Project Manager" type="checkbox" /> Project Manager<br> 
    <input name="position" value="Content Developer" type="checkbox" /> Content Developer<br> 
    <input name="position" value="Graphic Designer" type="checkbox" /> Graphic Designer<br> 
    <input name="position" value="Digital Media Creator & Storyteller" type="checkbox" /> Digital Media Creator & Storyteller<br> 
    <input name="position" value="Programmer" type="checkbox" /> Programmer<br> 
    <input name="position" value="Server Engineer/Technician" type="checkbox" /> Server Engineer/Technician<br> 
    <input name="position" value="User Experience Designer" type="checkbox" /> User Experience Designer<br> 
</div> 
<input type="submit"> 
</form> 

PHP:

<?php 
$positions = $_POST['position']; 
echo $positions; 
?> 

,我得到的是被按下的最后一个单选按钮的值输出。 $ positions变量只保存一个值而不是全部。如何让它保存所有检查过的内容?提前致谢。

回答

8

更改name="position"name="position[]"在所有的input标记中,然后将$_POST['position']变量作为数组处理。

使用var_dump($_POST)可以查看在HTML中修复name属性后将发送到PHP的数据。

+0

太棒了!如果我想将数据数组插入MySQL数据库列,我该怎么做?我现在拥有的是:INSERT INTO'applications'(positions)VALUES('“。$ positions。'') – Nicolas

+0

Nevermind。我想到了。 – Nicolas

+0

@Nicolas没有问题...但为了将来的参考,你应该序列化数组,以便它可以存储到单个列中,或者将它变成某种标量值。为了获得更好的数据库灵活性,您可以将每个值存储为一对多表关系。 – sjagr