这是我的展示形式
<form name='foodlist' action='checkout' method='POST'>
<table>
<tr>
<td>Product Name</td>
<td>Price</td>
<td>Quantity</td>
<td>Amount</td>
</tr>
<tr>
<td><input type='text' name='foodname[]' size='10' class='foodname' /></td>
<td><input type='text' name='price[]' size='2' class='price'/></td>
<td><input type='text' name='qty[]' size='2' class='qty'/></td>
<td><input type='text' name='amt[]' size='2' class='amt'/></td>
</tr>
<tr>
<td><input type='text' name='foodname[]' size='10' class='foodname' /></td>
<td><input type='text' name='price[]' size='2' class='price'/></td>
<td><input type='text' name='qty[]' size='2' class='qty'/></td>
<td><input type='text' name='amt[]' size='2' class='amt'/></td>
</tr>
</table>
</form>
我有AJAX jQuery来获取输入值。
$.ajax({
type : "POST",
url : "ajaxfood.php",
data: $('[name="qty[]"]').serialize(),
success : function(html) {
alert (html);
}
});
这是我的php:
<?php
$qtys = $_POST['qty'];
echo json_encode($qtys);
?>
上面的代码完美地工作并替换了qty数组。 但我的问题是我想在我的PHP中获取所有文本框。我试图发送while表单,但它没有工作
data: $('form').serialize(),
我的第一个问题对我来说非常重要。 请帮忙
答案 0 :(得分:1)
尝试在JS中使用$('form').serializeArray()
作为AJAX数据。
如果您使用的是新版本的Chrome,则可以使用开发工具(F12)中的控制台查看表格中的输出:
var formArray = $('form').serializeArray();
console.table(formArray);
如果您看到其中的所有信息,则应该在您的PHP $_POST
变量中提供服务器端代码。在服务器上使用相同的var_dump()
调用以确保它在那里。 - http://jsfiddle.net/rsrj07fn/
这将获取服务器的信息,并将其打印在服务器上以确保它在那里。 var_dump()
不适用于您的成品,仅用于调试目的,以直观地查看分配给服务器端变量的内容(如$_POST
)。如果您只想使用进入服务器的数据的字符串值,您应该可以使用,例如:
echo $_POST['foodname'][0];
echo $_POST['foodname'][1];
echo $_POST['price'][0];
echo $_POST['price'][1];
等
将它们全部放在一个DIV中:
echo "<div>";
echo $_POST['foodname'][0]."<br>";
echo $_POST['foodname'][1]."<br>";
echo $_POST['price'][0]."<br>";
echo $_POST['price'][1]."<br>";
echo $_POST['qty'][0]."<br>";
echo $_POST['qty'][1]."<br>";
echo $_POST['amt'][0]."<br>";
echo $_POST['amt'][1]."<br>";
echo "</div>";