【问题标题】:PHP Form from Array Select Value Edit/Save数组中的 PHP 表单选择值编辑/保存
【发布时间】:2012-02-23 05:01:37
【问题描述】:

我正在使用一个数组来输出一个用于产品输入的表单。

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

类别填充为选择/选项集,这在添加新产品时很容易。当我需要编辑产品时,问题就出现了。我想查询类别表以返回所有可用类别以填充选择/选项集。同时,我需要查询 products 表,以便提供他们保存的 Model Number 和 Description。

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

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 />";
        }

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

【问题讨论】:

  • 你的意思是说一个品类有很多产品,一旦你选择了这个品类就想列出属于那个品类的所有产品?是$labels 多维数组。如果您提供更多信息,将会很有帮助。

标签: php mysql arrays


【解决方案1】:
  1. 拥有 $labels 数组是个坏主意。
  2. 首先获取所有数据。将您的产品数据选择到数组中。将您的类别选择到数组中。
  3. 显示表单,就像您使用 PHP 创建的任何其他 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 />

等等

在将值放入value 属性之前不要忘记htmlspecialchars()

【讨论】:

    【解决方案2】:

    您可以这样查询产品表:

    $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'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 2016-02-18
      • 1970-01-01
      相关资源
      最近更新 更多