Foreach多个选择输出

时间:2016-11-16 17:18:25

标签: php html forms foreach

我有一个包含多个选项选择器的表单:

<td>
   <input type="checkbox" name="chk[]" checked="checked" />
</td>
<td>
   <select id="loyaltyType" required="required" name="VX_TYPE[]">
      <option>Choose Type</option>
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
   </select>
</td>
<td>
   <input type="text" required="required" class="small"  name="VX_NAME[]">
</td>
<td>
   <input type="text" required="required" class="small"  name="VX_EMAIL[]">
</td>
<td>
   <select name="VX_LOCATION[]" multiple>
      <option value="London">London</option>
      <option value="New York">New York</option>
      <option value="Paris">Paris</option>
      <option value="Tokyo">Tokyo</option>
   </select>
</td>

我希望使用以下输入/输出打印表单:

输入:

B,样本名称,样本电子邮件,纽约+ Toyko选择

D,示例名称2,样本email2,伦敦+ Toyko选择

输出:

B,样本名称,样本电子邮件,纽约,东京。

D,样本名称2,样本email2,伦敦,东京。

然而,我得到的实际输出如下:

实际输出:

B,样本名称,样本电子邮件,纽约。

D,样本名称2,示例email2,东京。

这是到目前为止输出的代码不起作用:

<?php foreach($VX_TYPE as $a => $b){ ?>
<p>
   <?php echo $VX_TYPE[$a]; ?>, <?php echo $VX_NAME[$a]; ?>, <?php echo $VX_EMAIL[$a]; ?>, <?php echo $VX_LOCATION[$a]; ?>
</p>
<?php } ?>

任何关于如何使这项工作的建议都会很棒!

1 个答案:

答案 0 :(得分:0)

假设您在帖子中获得以下内容:

 array (
       VX_NAME  =>(
               [1] = sample1
               [2] = sample2
       )
       VX_TYPE => (
               [1] = B
               [2] = D
       )
       VX_LOCATION => (
               [1] = London
               [2] = Tokyo
               [3] = New York
     )
  )

您的VX_LOCATION和VX_TYPE选项将被放入一个与NAME,EMAIL无关联的数组中。该表单允许用户添加其他行。您需要将它们与位置/类型相关联。

例如:

     array (
       VX_NAME  =>(
               [1] = sample1
               [2] = sample2
       )
       VX_TYPE => (
               [1] = B
               [2] = D
       )
       VX_LOCATION[1] => (
               [1] = New York
               [2] = Tokyo
       )
       VX_LOCATION[2] (
               [1] = London
               [2] = Tokyo
       )
  )

然后你可以这样做:

 foreach ($_POST['VX_NAME'] as $k => $v){
  echo $_POST['VX_TYPE'][$k] . "," . $v. ",". $_POST['VX_EMAIL'].",";
    foreach ($_POST['VX_LOCATION'][$k] as $kk => $vv){
       echo $vv . ",";
    }
 echo "<br>";
 }