将复选框和文本字段数组分组,以便以组合在一起的形式显示


Group checkbox and textfield arrays to display in form grouped together

如何在两个数组提交表单后将它们分组显示?

<input type="checkbox" name="location[1]" value="Chicago,IL"  />
<input name="qty[1]" type="text" size="8" id="qty[1]" value="500" />
<input type="checkbox" name="location[2]" value="New York"  />
<input name="qty[2]" type="text" size="8" id="qty[2]" value="100" />
<input type="checkbox" name="location[3]" value="Seattle"  />
<input name="qty[3]" type="text" size="8" id="qty[3]" value="200" />

因此,如果用户选择芝加哥和西雅图,它将返回如下:

芝加哥,伊利诺伊州-500,西雅图-200

我用过这个

$location = implode(', ',$_POST['location']);

将显示:芝加哥,伊利诺伊州,西雅图

但如果数组是相同的数字,我也需要它来获取"数量"。因此,它将作为:

芝加哥,伊利诺伊州-500,西雅图-200

"数量"的值将由用户输入

尝试使用内爆()函数,但首先从中生成和数组。

需要记住的是,当复选框未被选中时,它们不会被发送到服务器,但空的文本框会被发送到,所以foreachisset的简单组合会给你想要的结果:

// Loop over all text inputs
foreach ($_POST['qty'] as $key => $value)
{
  // Check if the matching checkbox was checked
  if (isset($_POST['location'][$key]))
  {
    echo htmlspecialchars($_POST['location'][$key]) . ' - ' . htmlspecialchars($value);
  }
}

您可能希望将它们添加到一个数组中,并将数组implode作为逗号分隔列表,但这只是一个基本示例。