使用 PHP 捕获 HTML 多个 select 的数组
Catch array of HTML multiple select with PHP
我有两个多选声明为:
<form method="post">
<input type="text" name="vcgame[]" id="vcgame_1" value="">
<select name="vccoun[][]" id="vccoun_5" multiple="multiple">
<option value="1">West Indies</option>
<option value="2" selected="selected">India</option>
<option value="3" selected="selected">Australia</option>
</select>
<input type="text" name="vcgame[]" id="vcgame_2" value="">
<select name="vccoun[][]" id="vccoun_9" multiple="multiple">
<option value="4">Italy</option>
<option value="5" selected="selected">Germany</option>
</select>
</form>
我想捕捉 PHP 中的值,像这样
$game_list= $_POST['vcgame'];
$country_list= $_POST['vccoun'];
$game_country= array();
foreach($game_list as $key=>$val)
{
$game_country[$key]= $country_list[$key];
}
但是值是这样的(在 $_POST
上有 print_r
):
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
)
[1] => Array
(
[0] => 3
)
[2] => Array
(
[0] => 5
)
)
而不是:
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
[1] => 3
)
[1] => Array
(
[0] => 5
)
)
如何实现?谁能帮忙?提前致谢。
尝试将表单上的字段名称更改为您希望获得所需结果的索引:
<form method="post">
<input type="text" name="vcgame[0]" id="vcgame_1" value="">
<select name="vccoun[0][]" id="vccoun_5" multiple="multiple">
<option value="1">West Indies</option>
<option value="2" selected="selected">India</option>
<option value="3" selected="selected">Australia</option>
</select>
<input type="text" name="vcgame[1]" id="vcgame_2" value="">
<select name="vccoun[1][]" id="vccoun_9" multiple="multiple">
<option value="4">Italy</option>
<option value="5" selected="selected">Germany</option>
</select>
</form>
那么$_POST
输出为:
Array
(
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
[1] => 3
)
[1] => Array
(
[0] => 5
)
)
)
甚至像这样:
<input type="text" name="data[0][vcgame]" id="vcgame_1" value="">
<select name="data[0][vccoun][]" id="vccoun_5" multiple="multiple">
...
<input type="text" name="data[1][vcgame]" id="vcgame_2" value="">
<select name="data[1][vccoun][]" id="vccoun_9" multiple="multiple">
Array
(
[data] => Array
(
[0] => Array
(
[vcgame] => cricket
[vccoun] => Array
(
[0] => 2
[1] => 3
)
)
[1] => Array
(
[vcgame] => football
[vccoun] => Array
(
[0] => 5
)
)
)
)
我有两个多选声明为:
<form method="post">
<input type="text" name="vcgame[]" id="vcgame_1" value="">
<select name="vccoun[][]" id="vccoun_5" multiple="multiple">
<option value="1">West Indies</option>
<option value="2" selected="selected">India</option>
<option value="3" selected="selected">Australia</option>
</select>
<input type="text" name="vcgame[]" id="vcgame_2" value="">
<select name="vccoun[][]" id="vccoun_9" multiple="multiple">
<option value="4">Italy</option>
<option value="5" selected="selected">Germany</option>
</select>
</form>
我想捕捉 PHP 中的值,像这样
$game_list= $_POST['vcgame'];
$country_list= $_POST['vccoun'];
$game_country= array();
foreach($game_list as $key=>$val)
{
$game_country[$key]= $country_list[$key];
}
但是值是这样的(在 $_POST
上有 print_r
):
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
)
[1] => Array
(
[0] => 3
)
[2] => Array
(
[0] => 5
)
)
而不是:
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
[1] => 3
)
[1] => Array
(
[0] => 5
)
)
如何实现?谁能帮忙?提前致谢。
尝试将表单上的字段名称更改为您希望获得所需结果的索引:
<form method="post">
<input type="text" name="vcgame[0]" id="vcgame_1" value="">
<select name="vccoun[0][]" id="vccoun_5" multiple="multiple">
<option value="1">West Indies</option>
<option value="2" selected="selected">India</option>
<option value="3" selected="selected">Australia</option>
</select>
<input type="text" name="vcgame[1]" id="vcgame_2" value="">
<select name="vccoun[1][]" id="vccoun_9" multiple="multiple">
<option value="4">Italy</option>
<option value="5" selected="selected">Germany</option>
</select>
</form>
那么$_POST
输出为:
Array
(
[vcgame] => Array
(
[0] => cricket
[1] => football
)
[vccoun] => Array
(
[0] => Array
(
[0] => 2
[1] => 3
)
[1] => Array
(
[0] => 5
)
)
)
甚至像这样:
<input type="text" name="data[0][vcgame]" id="vcgame_1" value="">
<select name="data[0][vccoun][]" id="vccoun_5" multiple="multiple">
...
<input type="text" name="data[1][vcgame]" id="vcgame_2" value="">
<select name="data[1][vccoun][]" id="vccoun_9" multiple="multiple">
Array
(
[data] => Array
(
[0] => Array
(
[vcgame] => cricket
[vccoun] => Array
(
[0] => 2
[1] => 3
)
)
[1] => Array
(
[vcgame] => football
[vccoun] => Array
(
[0] => 5
)
)
)
)