来自数组的PHP表单选择值编辑/保存

时间:2012-02-23 05:01:38

标签: php mysql arrays

我正在使用数组输出产品条目的表单。

$labels = array(
    "category" => "Model",
    "model_number" => "Model No.",
    "description" => "Description");

将类别填充为选择/选项集,这在添加新产品时很容易。当我需要编辑产品时会出现问题。我想查询类别表以返回所有可用类别以填充select / option集。同时,我需要查询产品表,以便我可以提供他们保存的型号和描述。

以下是我添加表单中的代码,让您了解我是如何构建它的。

foreach($labels as $field => $label) {
        if($field == "category") {
            echo "<label>$label:</label>";
            echo "<select name=\"$field\">";
            while($row=mysqli_fetch_assoc($result)) {
                extract($row);
                echo "<option value=\"$category\">$category</option>";
            }
            echo "</select>";
            echo "<br />";
        }
        else {
            echo "<label>$label:</label>";
            echo "<input type=\"text\" name=\"$field\" />";
            echo "<br />";
        }

感谢您的帮助。我确信这很简单,但我的大脑目前还没有给我提供解决方案。

2 个答案:

答案 0 :(得分:0)

  1. 拥有$ labels数组是一个坏主意。
  2. 首先获取所有数据。选择产品数据到阵列中。选择阵列中的类别。
  3. 显示表单,与使用PHP
  4. 创建的任何其他HTML一样
    <label>Model:</label>
    <select name="category">
    <? foreach($cats as $category): ?>
      <option<? if ($category == $row['category'])?> selected?>><?=$category?></option>
    <? endforeach ?>
    </select>
    <br />
    <label>Model No.:</label>
    <input type="text" name="model_number" value="<?=$row['model_number']?>"/>
    <br />
    

    等等

    在将您的值放入htmlspecialchars()属性

    之前,请不要忘记value

答案 1 :(得分:-1)

您可以像这样查询产品表:

$sql = "SELECT * FROM products WHERE product_id = $product_id";

$q = mysql_query( $sql );

$row = mysql_fetch_assoc( $q );

$model_number = $row['model_number'];

$description = $row['description'];

$category = $row['category'];