我正在尝试在nextpage(postdata.php)上打印输入文本字段值。但它始终只打印第一行结果。我没有在下一页获得剩余的行值。我在jsfiddle上发布了我的完整代码..如何在php(postdata.php页面)中获取剩余的js动态行值?
JS
$(document).ready(function(){
$("span").click(function(){
$("#container").append('<tr><td>Email : </td><td><input type="text" name="email[]" placeholder="Email id" /></td> <td>Name : </td><td><input type="text" name="name[]" placeholder="Your Name "/></td> <td><a title="Delete this row" href="javascript:void(0);" class="remove">Del</a></td></tr>');
});
$("#container").on('click','.remove',function(){
$(this).parent().parent().remove();
});
});
腓
<?php
echo "
<table>
<tr>
<td>
Email :
</td>
<td>
$_POST[email]
</td>
<td>
Name :
</td>
<td>
$_POST[name]
</td>
</tr>
</table>";
?>
答案 0 :(得分:1)
当您在输入字段的名称中添加方括号时,PHP将以数组形式接收它的值。您的JS代码很好,但PHP代码根本不处理数组。请看以下内容:
echo "
<table>";
if(!is_array($_POST['email'])) {
$_POST['email'] = array($_POST['email']);
$_POST['name'] = array($_POST['name']);
}
foreach($_POST['email'] as $key => $email) {
// get the corresponding name to the email
$name = $_POST['name'][$key];
echo "<tr>
<td>
Email :
</td>
<td>
$email
</td>
<td>
Name :
</td>
<td>
$name
</td>
</tr>";
}
echo "</table>";
注意:此代码将检查是否提交了多个值,并且在两种情况下均可使用。
答案 1 :(得分:1)
由于您声明的字段名称是数组,因此$ _POST变为多维数组。所以请尝试这样
<?php
$size = sizeof($_POST['email']);
echo "<table>" ;
for($i=0; $i<$size;$i++)
{
echo "
<tr>
<td>
Email :
</td>
<td>
".$_POST['email'][$i]."
</td>
<td>
Name :
</td>
<td>
".$_POST['name'][$i]."
</td>
</tr>
";
}
echo "</table>";
?>
您的html更改名称分别为Name
和Emai
l字段name[]
和email[]
。此外,您错放了form
标记。它在<table>
之后开始,在<table>
之后结束。哪个不对。因此请在form
代码
table
标记