多个多选项选项 - 如何获取PHP

时间:2017-05-29 15:10:31

标签: php



<div><select name="languages_known[]" multiple="multiple">
<option value="1">UK</option>
<option value="2">EN</option>
<option value="3">HI</option>
<option value="4">AN</option>
</select>
</div>

<div>
<select name="languages_known[]" multiple="multiple">
<option value="1">UK</option>
<option value="2">EN</option>
<option value="3">HI</option>
<option value="4">AN</option>
</select>
</div>
&#13;
&#13;
&#13;

注意:多选框名称都相同,即languages_known []。 如果用户选择&#34; 1&amp; 2从第1个方框&#34;和&#34; 1,3&amp;来自第二盒的#4;#34;同时,在PHP?我必须将值保存在MySQL的两个不同的行中。像:

在第1行,列名&#34; input_val&#34;将包含1,2和 在第2行,列名&#34; input_val&#34;将包含1,3,4。

如果有另一个具有相同名称的多选框,将创建mysql第3行,如下所示: 在第3行,列名&#34; input_val&#34;将包含2,4等。

2 个答案:

答案 0 :(得分:2)

输出将是:

$_POST['languages_known'][0] = 2;
$_POST['languages_known'][1] = 1;
$_POST['languages_known'][2] = 3;
$_POST['languages_known'][3] = 4;

因为使用multiple="multiple"属性(以及[]名称部分)会将所有值作为数组元素传递给PHP(因此在发布时不会覆盖任何值)。

然后,您可以通过接收页面上的array_walk数组foreach$_POST['languages_known']

Reference

更新

  

我必须将值保存在MySQL的两个不同的行中。

如果你必须将这两个信息保存到两个不同的行,只需重新构建两个表单名称,然后给每个单独的数组行:

<div><select name="languages_known[][]" multiple="multiple">
 ....
</div>

<div><select name="languages_known[][]" multiple="multiple">
 ....
</div>

然后会给你:

$_POST['languages_known'][0][0] = 2;
$_POST['languages_known'][0][1] = 1;
$_POST['languages_known'][1][2] = 3;
$_POST['languages_known'][1][3] = 4;

总的来说,我担心问题不是100%明确,我会用一些猜测来回答你,所以你应该heavily edit and improve your question。什么样的MySQL列,什么数据类型;详细信息, 详细信息

答案 1 :(得分:0)

<form method="post">
    <select name="cars[0][]" multiple>
        <option selected>test</option>
        <option selected>test2</option>
        <option>test3</option>
        <option>test4</option>
    </select>
    <select name="cars[1][]" multiple>
        <option>hai</option>
        <option>hai2</option>
        <option selected>hai3</option>
        <option selected>hai4</option>
    </select>
    <input type="submit">
</form>

然后按如下方式阅读:$ _POST ['cars'] [0]用于第一组,$ _POST ['cars'] [1]用于第二组。基于此,我可以将值存储在不同的MySQL行上。

礼貌:How to distinguish between two multiple selection lists with same name

相关问题