我有一个使用jQuery .serialize()
发送所有数据的表单在表单中有四个arrays qty[], etc
它将表单数据发送到sendMail页面,我希望将发布的数据从阵列。
我试过了:
$qty = $_POST['qty[]'];
foreach($qty as $value)
{
$qtyOut = $value . "<br>";
}
尝试了这个:
for($q=0;$q<=$qty;$q++)
{
$qtyOut = $q . "<br>";
}
这是正确的方法吗?
答案 0 :(得分:11)
您的[]
变量中有$_POST
- 这些不是必需的。你应该使用:
$qty = $_POST['qty'];
您的代码将是:
$qty = $_POST['qty'];
foreach($qty as $value) {
$qtyOut = $value . "<br>";
}
答案 1 :(得分:7)
php会自动检测 $ _ POST 和 $ _ GET - 数组,以便您可以juse:
<form method="post">
<input value="user1" name="qty[]" type="checkbox">
<input value="user2" name="qty[]" type="checkbox">
<input type="submit">
</form>
<?php
$qty = $_POST['qty'];
一个php-Array将和 $ qty 。现在您可以通过以下方式访问它:
if (is_array($qty))
{
for ($i=0;$i<size($qty);$i++)
{
print ($qty[$i]);
}
}
?>
如果您不确定所接收数据结构的格式,可以使用:
print_r($_POST['qty']);
甚至
print_r($_POST);
查看它是如何存储的。
答案 2 :(得分:1)
我的PHP 4.4.4版本抛出错误: 严重错误:调用未定义函数:size()
我将 size 更改为 count ,然后例程正常运行。
<?php
$qty = $_POST['qty'];
if (is_array($qty)) {
for ($i=0;$i<count($qty);$i++)
{
print ($qty[$i]);
}
}
?>
答案 3 :(得分:1)
尝试使用带有过滤器FILTER_SANITIZE_SPECIAL_CHARS和FILTER_REQUIRE_ARRAY的filter_input(),如图所示
$qty=filter_input(INPUT_POST, 'qty',FILTER_SANITIZE_SPECIAL_CHARS,FILTER_REQUIRE_ARRAY);
然后您可以像
一样很好地进行迭代foreach($qty as $key=>$value){
echo $value . "<br>";
}
答案 4 :(得分:0)
PHP很好地处理嵌套数组
尝试:
foreach($_POST['qty'] as $qty){
echo $qty
}
答案 5 :(得分:0)
我更喜欢foreach的foreach,因为您不需要增加大小。
if( isset( $_POST['qty'] ) )
{
$qty = $_POST ['qty'] ;
if( is_array( $qty ) )
{
foreach ( $qty as $key => $value )
{
print( $value );
}
}
}