如何在两个数组提交表单后将它们分组显示?
<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
"数量"的值将由用户输入
尝试使用内爆()函数,但首先从中生成和数组。
需要记住的是,当复选框未被选中时,它们不会被发送到服务器,但空的文本框会被发送到,所以foreach
和isset
的简单组合会给你想要的结果:
// 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
作为逗号分隔列表,但这只是一个基本示例。