-1

我在下面的表格中遇到问题,每当我单击一个项目时,它会捕获该项目并在 mySQL 表上进行更新,它只显示 1 个项目(我如何让它显示我检查过的所有项目?)。

此外,当我输入一个数量时,它不会在 mySQL 表上更新,当我为每个项目放置多个数量时,它只会显示 0。

如果可以的话,你们能帮忙吗?

<tr>
<th>Shirts</th>
<th>Quantity</th>
</tr>

<tr>

<td>
        <br />
        <input type="checkbox" name="items" value="SH01" /><label for="rd1">Obey T-Shirt: $9.99</label></div> <br />
        <input type="checkbox" name="items" value="SH02" /><label for="rd1">Obey Professor: $9.99</label></div> <br />
        <input type="checkbox" name="items" value="SH03" /><label for="rd1">Hustle T-Shirt: $9.99</label></div> <br />
        <input type="checkbox" name="items" value="SH04" /><label for="rd1">Hip-Hop Support: $9.99</label></div> <br />
        <input type="checkbox" name="items" value="SH05" /><label for="rd1">90's Shirt: $9.99</label></div> <br />
        <input type="checkbox" name="items" value="SH06" /><label for="rd1">DOPE Shirt: $9.99</label></div> <br />
        <br />
</td>

<td> 
        <br />
        <input type="text" name="qty" size ="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <br />

</td>

</tr>

<tr>

    <td>
        <br />
        <input type="checkbox" name="items" value="SO1" /><label for="rd1">Shoe - Red Lace: $19.99</label></div><br />
        <input type="checkbox" name="items" value="SO2" /><label for="rd1">Shoe - Red High Top: $19.99</label></div><br />
        <input type="checkbox" name="items" value="SO3" /><label for="rd1">Shoe - White: $19.99</label></div><br />
        <input type="checkbox" name="items" value="SO4" /><label for="rd1">Shoe - Black: $19.99</label></div><br />
        <input type="checkbox" name="items" value="SO5" /><label for="rd1">Shoe - Black High Top: $19.99</label></div><br /> 
        <input type="checkbox" name="items" value="SO6" /> <label for="rd1">Red Basketball: $19.99</label></div><br />
        <br />
    </td>

    <td> 
        <br />
        <input type="text" name="qty[]" size ="2"/><br/>
        <input type="text" name="qty[]" size="2"/><br/>
        <input type="text" name="qty[]" size="2"/><br/>
        <input type="text" name="qty[]" size="2"/><br/>
        <input type="text" name="qty[]" size="2"/><br/>
        <input type="text" name="qty[]" size="2"/><br/>
        <br />

</td>
</tr>

<tr>
    <td>
        <br />
        <input type="checkbox" name="items" value="SN1" /> <label for="rd1">Snapback Bullets: $29.99</label></div><br />
        <input type="checkbox" name="items" value="SN2" /><label for="rd1">Snapback: $29.99</label></div><br />
        <input type="checkbox" name="items" value="SN3" /><label for="rd1">Snapback Bullets: $29.99</label></div><br />
        <input type="checkbox" name="items" value="SN4" /><label for="rd1">Snapback Bullets: $29.99</label></div><br />
        <input type="checkbox" name="items" value="SN5" /><label for="rd1">Snapback Bullets: $29.99</label></div><br />
        <input type="checkbox" name="items" value="SN6" /><label for="rd1">Snapback Bullets: $29.99</label></div><br />
        <br />
    </td>
<td> 
        <br />
        <input type="text" name="qty" size ="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <input type="text" name="qty" size="2"/><br/>
        <br />

</td>   
</tr>

</tr>
</table>
<br />
<input type="submit" name="submit">
</form>

<?php

if (isset($_POST['submit']))
{
$con = mysql_connect('$localhost','$url','$pass');
if (!$con)
{
die("Could Not Connect: " . mysql_error());
}

mysql_select_db("$username",$con);

$sql = "INSERT INTO Order_Information(Order_ID,Order_Items,Order_Quantity) VALUES (null,'$_POST[items]','$_POST[qty]')";

mysql_query($sql,$con);

mysql_close($con);
}

?>
4

3 回答 3

3

您需要做的第一件事是在 foreach 循环中更新,以便为每个选中的项目插入一行,其次您需要使用数组将数量字段与这些项目相关联。

将您的 Quantity 字段名称更改为包含项目代码的数组:

<input type="text" name="qty['SO1']" size ="2"/><br/>
        <input type="text" name="qty['SO2']" size="2"/><br/>
etc ...

然后在你的 PHP 中:

foreach ($_POST['items'] as $item) {
  foreach($_POST['qty'] as $key => $value) {
    $quantity = 0;
    if ($key == $item) {
      $quantity = $value;
    }
  }
$sql = "INSERT INTO Order_Information(Order_Items,Order_Quantity) VALUES ('$item', '$quantity')";
.
.
}
于 2013-06-21T09:24:56.347 回答
1

HTML

<input type="checkbox" name="items" value="SH01" />
<input type="text" name="qty_SH01" ..../>

PHP

foreach ($_POST as $key => $val) {
   if (!preg_match("/^SH/", $key)) continue;

   $qty = $_POST['qty_' . $key];

   $sql = "INSERT INTO Order_Information(Order_Items,Order_Quantity) VALUES ('$key', '$qty')";
}
于 2013-06-21T09:31:58.020 回答
-1
  1. 使用 时$_POST[items],您忘记了撇号 - $_POST['items']

  2. 要获得所有选中的复选框,您需要一个循环:

    if(!empty($_POST['check_list']))
    {
        foreach($_POST['items'] as $item)
        {
            ....
        }
    }
    
于 2013-06-21T09:24:10.003 回答