我正在尝试在guestname输入字段中插入多个名称。所以我已将guestname声明为数组。在使用逗号分隔的guestname字段中插入一些名称后(例如:superman,batman,spiderman),我输出为“guestname”:[“superman,batman,spiderman”]。我想运行循环计数数组的所有值并逐个打印,其他数据(例如电子邮件和地址)将保持不变。
<input type="text" name="guestname[]" multiple>
<input type="text" name="email">
<input type="text" name="address">
<tr>
foreach(array_count_values($_POST['guestname'] as $key => $value)
{
echo "<td>". $value."</td>";
echo "<td>". $_POST["email"]."</td>";
echo "<td>". $_POST["address"]."</td>";
}
</tr>
答案 0 :(得分:2)
首先,您必须加载逗号分隔值,然后从数据中读取它。
$guest = explode(",", $_POST['guestname'][0]);
foreach($guest as $value)
{
echo "<td>". $value."</td>";
echo "<td>". $_POST["email"]."</td>";
echo "<td>". $_POST["address"]."</td>";
}
答案 1 :(得分:0)
foreach(explode(',', join(',', $_POST['guestname'])) as $key => $value)
{
...
}
这是你在寻找什么?
它将所有$ _POST ['guestname']值合并为一个字符串,添加额外的值,然后在数组中重新展开它们并循环播放。
示例:
$_POST['guestname'][] = "name1, name2, name3, name4";
$_POST['guestname'][] = "name5, name6, name7";
返回:
name1
name2
name3
name4
name5
name6
name7
答案 2 :(得分:0)
尝试以下代码。
<?php
foreach($_POST['guestname'] as $key => $value)
{
//your content
}
?>
答案 3 :(得分:0)
代码"guestname":["superman, batman, spiderman "]
表示"superman, batman, spiderman "
是一个字符串。如果这些是一个数组,它将是"superman", "batman", "spiderman "
。所以也许你可以使用explode
来获取一系列元素。
例如
$guestname = explode("," , $_POST['guestname']);
然后
foreach(array_count_values($guestname as $key => $value)
答案 4 :(得分:0)
希望你看起来像下面这样:
<form method="post">
<input type="text" name="guestname">
<input type="text" name="email">
<input type="text" name="address">
<input type="submit" value="submit">
</form>
<?php
if(isset($_POST['guestname'])){
echo "<table border='1'>";
foreach(array_filter(explode(',',$_POST['guestname'])) as $key => $value)
{
echo "<tr><td>". $value."</td>";
echo "<td>". $_POST["email"]."</td>";
echo "<td>". $_POST["address"]."</td></tr>";
}
echo "</table>";
}
?>