0

总而言之,当我尝试使用复选框更新数据库表时,我遇到了一个奇怪的问题,它只需要一个值,其余的只是忽略它们,这是我的 php 代码

foreach ($_POST['choice'] as $id){
    $price=$_POST['price'][$id];
    $availability=$_POST['availability'][$id];

    $result1=mysql_query("UPDATE store SET storeid='".$id."',availability='".$availability."', price='".$price."'  WHERE productid='".$par1."'");
}

是的,你是对的,我对缺乏信息深表歉意。这也是我的 html 代码

echo "<td><input type='text' id='availability[".$row->id ."]' name='availability[".$row->id ."]'  value='".$row->diathesimotita ."' size='20'/></td>";
echo "<td><input type='text' id='price[".$row->id ."]' name='price[".$row->id ."]'  value='".$row->price ."'  size='10'/></td>";
echo "<td><input type='checkbox' id='choice[".$row->id ."]' name='choice[".$row->id ."]'  value='".$row->id ."'   /></td>";
echo"</tr>";

所以我试图获取与复选框在同一行的文本框值,但它只获取第一个选中的 ckeckbox

4

2 回答 2

0

复选框仅在选中时才发布值。在尝试在查询中使用它们之前,您应该先验证它们或设置一个值(如果没有别的,为了安全!)。例如,在处理代码的顶部执行此操作:

$checkbox_val = (!empty($_POST['choice']) ? 'Yes' : 'No');  //example only assuming non-array for 'choice'

如果 POST 值为空或未设置,这会将值设置为“否”,以确保您始终拥有一个值。您可以将值更改为 0/1、真/假等。

此外,如果不查看您的 3 个 $_POST 数组中的内容,我们就不可能告诉您您是否获得了正确的等值$price

于 2013-08-31T20:08:03.683 回答
0

PHP 代码看起来不错;我们需要查看 HTML 代码,但无论如何请在 SQL 中尝试:

UPDATE store SET storeid='".$id."' , availability='".$availability."' , price='".$price."'     WHERE productid='".$par1."'" );

空格在 SQL 中真的很重要。如果这不起作用,请向我们展示 HTML 代码。

于 2013-08-31T20:09:57.077 回答