如何添加';选择';在一个选择下拉列表wp.php中


How to add a 'selected' in a select dropdown wp/php

我有一个问题,我不知道如何解决,我有一种WP插件,它有一个表单,在这个表单中,我有可能有不同数量的数据(取决于用户提交的内容)。

如何将"所选"添加到所选项目中,以便用户返回时可以编辑/查看所选项目?

 <select name="supplier">
    <option value="Supplier 1">Supplier 1</option>
    <option value="Supplier 2">Supplier 2</option>
    <option value="Supplier 3">Supplier 3</option>
    <option value="Supplier 4">Supplier 4</option>
</select>

我想到了一个循环,我应该为每个选项指定一个数字吗?可能有100个供应商,所以它需要计算对吗?

我会使用一个循环,比如。。。

   $theirChosenSupplier = $supplierVarFromDatabaseOrWherever;
   ?>
    <select name="supplier">  
    foreach($allSuppliers as $individualSupplier) {
     if($individualSupplier == $theirChosenSupplier) {
      $selected = "selected";
     } else {
      $selected = "";
     }
     ?><option value="<?php echo $individualSupplier; ?>" <?php echo $selected; ?>>
     <?php echo $individualSupplier; ?>
     </option>
     <?php } ?>
    </select>

这段代码没有经过测试,但应该会给你一个想法。如果我误解了这个问题,我深表歉意。

添加id总是一件好事。假设这是wordpress生成的,并且你还没有循环,那么总是可以选择使用javascript,也许还有一个onchange事件。

我不知道是先提交表格还是你做其他事情,但可能是:

<select id="foo">
    <option id="provider_1">Provider 1</option>
    <option id="provider_2">Provider 2</option>
</select>
<script type="text/javascript">
    window.onload = function() {
        var selectedValue = '<?php echo someEscapeFunction($_SESSION['id_provider']); // or _GET, _POST ?>';
        document.getElementById('foo').selectedIndex = document.getElementById(selectedValue).index;
    }
</script>