2017-02-24 61 views
0

我想在guestname输入字段中插入多个名称。所以我宣布guestname为一个数组。在用逗号分隔的guestname字段中插入一些名字后(例如:超人,蝙蝠侠,蜘蛛侠),我得到的输出为“guestname”:[“超人,蝙蝠侠,蜘蛛侠”]。我想运行循环计数阵列的所有值,并在其他数据(例如电子邮件和地址)保持不变的情况下一个接一个地打印。如何计算一个数组元素的数量并为该数字运行一个循环?

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

回答

2

首先,您必须展开逗号分隔值,然后从数据中读取它。

$guest = explode(",", $_POST['guestname'][0]); 
foreach($guest as $value) 
{ 
    echo "<td>". $value."</td>"; 
    echo "<td>". $_POST["email"]."</td>"; 
    echo "<td>". $_POST["address"]."</td>"; 
} 
+0

我正在尝试你的代码,并得到以下错误。 (1)警告:explode()期望参数2是字符串,在第19行中给出的数组 和 (2)警告:提供给foreach()的无效参数第20行 –

+0

您能否告诉我错误? –

+0

编辑...请检查评论。 –

0
foreach(explode(',', join(',', $_POST['guestname'])) as $key => $value) 
{ 
    ... 
} 

这是你正在寻找热塑成型什么?

它合并所有$ _POST [“guest虚拟机名称”]的值成一个字符串添加额外的,然后在重新爆炸它们在阵列和环

例:

$_POST['guestname'][] = "name1, name2, name3, name4"; 
$_POST['guestname'][] = "name5, name6, name7"; 

返回:

name1 
name2 
name3 
name4 
name5 
name6 
name7 
+0

让利说我用逗号隔开3/4的名字。我想打印一个一个的名字。 –

+0

所以我的回答就是这么做的。 – user2342558

0

请尝试以下代码。

<?php 
    foreach($_POST['guestname'] as $key => $value) 
    { 
     //your content 
    } 
?> 
0

代码"guestname":["superman, batman, spiderman "]表示"superman, batman, spiderman "是一个字符串。如果这是一个数组,它将是"superman", "batman", "spiderman "。所以也许你可以使用explode来获取一组元素。 例如

$guestname = explode("," , $_POST['guestname']); 

然后

foreach(array_count_values($guestname as $key => $value) 
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>"; 
} 

?> 
相关问题