【问题标题】:Storing and displaying multiple select items存储和显示多个选择项
【发布时间】:2012-08-23 23:58:54
【问题描述】:

我使用的是多选框,如下图:

<select multiple="pages" id="pages" name="pages[]">
    <option value="Home Page">Home Page</option>
    <option value="Contact Us">Contact Us</option>
    <option value="Support">Support</option>
</select>

页面列表是从数据库中的另一个表生成的。

目前我正在内爆 $_POST['pages'] 并将字符串存储在数据库中。存储所选值的更有效方法是什么?

最后,我怎样才能显示所有页面(从数据库中的另一个表中检索)并让用户选择的页面在那个多选框中被选中。

例如用户选择了“联系我们” - 在编辑页面上显示所有页面时,“联系我们”条目会突出显示(选中)。

【问题讨论】:

    标签: php multiple-select


    【解决方案1】:

    正常是collapse all in a array,我觉得挺好的。

    这是一个例子:http://www.onlinetools.org/tricks/using_multiple_select.php

    【讨论】:

      【解决方案2】:

      除了将属性value 转换为数组位置之外,没有更多有效的方法将$_POST['pages'] 存储到数据库中。

      $type = array("Home Page","Contact Us","Support");
      

      使用数组来维护选定的项目(对于 POST)是完美的。例如:

      if(isset($_POST['submit'])){
          echo "<select name=\"pages\" id=\"pages\" names=\"pages[]\">";
          foreach($t as $loc=>$type)
              echo "<option value=\"$loc\">$type</option>";
          echo "</select>";
      }else{
          echo "<select name=\"pages\" id=\"pages\" names=\"pages[]\">";
           foreach($t as $loc=>$type)
              if($_POST['pages'] == $loc) //select that item
                  echo "<option value=\"$loc\" selected=\"selected\">$type</option>";
              else
                  echo "<option value=\"$loc\">$type</option>";
          echo "</select>":
      }
      

      根据数据库中的数据选择项目,只需将第 9 行 $loc 上的 if 语句替换为您存储在数据库中的数组位置。

      【讨论】:

      • 为了获得最大的可移植性,请仅使用selected 而不是selected="selected"
      • 是的,这就是我通常做的,但它不是有效的 HTML
      • 是的。 HTML 规范将此称为“最小化表单”,并提到许多用户代理只能识别此表单。见w3.org/TR/html4/intro/sgmltut.html#h-3.3.4.2
      • 我无法让它工作。这些页面以这种格式存储在数据库中Home Page,Contact Us,Support - 我不确定如何将它们放入数组中$loc
      • @Hammo $loc 引用索引,您不会将它们放入该数组中。
      猜你喜欢
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 2013-07-31
      • 2012-12-18
      • 2021-04-01
      相关资源
      最近更新 更多