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

时间:2013-06-25 13:57:02

标签: php javascript arrays forms checkbox

如何在提交表单后将2个数组显示为组合在一起?

<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" />

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

芝加哥,IL - 500,西雅图 - 200

我用过这个

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

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

但如果数组是相同的数字,我还需要它来获取“数量”。所以它会拉入:

芝加哥,IL - 500,西雅图 - 200

“qty”的值将由用户输入

2 个答案:

答案 0 :(得分:0)

尝试使用implode()函数,但首先使用它们生成和数组。

答案 1 :(得分:0)

要记住的是,当未选中复选框时,复选框不会发送到服务器,但空文本框是,因此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数组以获取以逗号分隔的列表,但这只是一个基本示例。