通过多个表单输入的 PHP 数组

Posted

技术标签:

【中文标题】通过多个表单输入的 PHP 数组【英文标题】:PHP array via multiple form inputs 【发布时间】:2012-09-22 14:11:40 【问题描述】:

我有以下代码:

$query = "SELECT * FROM items WHERE SUBSTRING(item_no, 1, ".$length.") BETWEEN 
'".$from_new."' AND '".$to_new."' ORDER BY item_no Desc";
$result = mysql_query($query);

$dd=array();
$ii=array();
$qq=array();
$aa=array();

if(mysql_num_rows($result)>0)
$num = mysql_num_rows($result);
?>

<form method="post" action="final_group_items.php">

<?php
echo "<table>";
for($i=0;$i<$num;$i++)
$row = mysql_fetch_array($result);
echo "<tr><td align=center>"; ?>

<input disabled  maxlength="2" type="text"
name="ii[]" value="<?php echo strtoupper($row['item_no']); ?>"><?php echo 
"</td><td align=center>";?> 

<input disabled maxlength="2" type="text" 
name="qq[]" value="<?php echo $row['qty'];?>"> 

<?php echo "</td><td align=center>"; ?> 

<input disabled maxlength="2" type="text" 
name="aa[]" value="<?php echo $row['actual_price'];?>"> 

<?php echo "</td><td align=center>";?>

<input required maxlength="2" type="text" name="dd[]" value="<?php echo 
$row['discount_price']; ?>">
<?php
echo "</td><tr>";
   
echo "</table>";
?>

<input type="submit" value="Change Values">
</form>

现在,当我点击提交时,它将打开 final_group_items.php,其中包含以下测试代码,以确保所有数组 (ii,qq,dd,aa) 不为空:

if(empty($_POST['qq']))
   
     echo "No value inside";
     return false;

   
   foreach($_POST['qq'] as $test)
   
     echo $test;
   
   return true;

所以通过测试所有数组,唯一有效的是 $_POST['dd']...其他输出“内部没有价值”,我真的不知道如何或为什么? 当我有多个具有唯一数组和值的字段时该怎么办。

谢谢

【问题讨论】:

因为其他人的输入标签中有disabled @Jack 我尝试移除禁用,同样的结果! 你跳进/跳出 php 模式太多了。很多回声不需要从 php 模式内部完成... @MarcB 对不起,我不是 php 专家。如果您能给我提供有关增强我的问题的网站教程,我将不胜感激! 你的echo "&lt;table&gt;" 是多余的。只有&lt;table&gt; 位于php 标记之外。不是在循环中,不是动态字符串,那为什么要在php模式下浪费cpu周期来输出呢? 【参考方案1】:

这个:

<input disabled maxlength="2" type="text" name="qq[]" value="<?php echo $row['qty'];?>">  

甚至会阻止浏览器在提交表单时发布该字段,因为disabled 会获得"disabled" 的隐式值。

该属性应该被移除:

<input maxlength="2" type="text" name="qq[]" value="<?php echo $row['qty'];?>">  

【讨论】:

你的意思是残疾人?我已经删除了 disabled 并对其进行了测试.. 结果相同。 @Alihamra 你刷新页面了吗? 你是对的,我已经在不同的浏览器上测试过它并且有效!非常感谢。

以上是关于通过多个表单输入的 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章

将多个 PHP 变量放入 Javascript 数组

php 通过POST传多个值 如何处理

通过 php 数组的多个 ACF 日期条件

使用 Ajax、PHP、MYSQL 更新表单

通过php中的POST具有相同名称的多个输入不起作用[重复]

PHP 表单使用动态输入插入数据数组