防止选择框中出现双重数据

时间:2017-01-31 16:43:04

标签: php jquery html

这是我的HTML + PHP:

<select name="type" class="form-control form-update-user" id="type" tabindex=1>
   <option selected="selected"><?php echo $thirds['type']; ?></option>
   <option value="CLIENT">CLIENT</option>
   <option value="AFFRETE">AFFRETE</option>
   <option value="DEPOT">DEPOT</option>
</select>

我使用JQUERY作为javascript的框架。

我的问题可能很简单。但是,如何防止selectbox多次拥有相同的数据?例如,如果

$third['type'] = "AFFRETE"

然后,我将有一次AFFRETE作为选定值,再次在我的选择框中输入此值。我尝试在javascript中使用ready函数删除所选值:

<script type="text/javascript">

$(document).ready(function(){
    $("#type option:selected").remove();
})

</script>

但是我选择了另一个值......逻辑。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以直接在PHP中执行此操作。在添加元素作为选项之前检查数组值:

<select name="type" class="form-control form-update-user" id="type" tabindex=1>
   <?php if (!in_array($thirds['type'], array('CLIENT', 'AFFRETE', 'DEPOT'))): ?>
       <option selected="selected"><?php echo $thirds['type']; ?></option>
   <?php endif; ?>
   <option value="CLIENT">CLIENT</option>
   <option value="AFFRETE">AFFRETE</option>
   <option value="DEPOT">DEPOT</option>
</select>

或许你正在寻找:

<?php $options = array('CLIENT', 'AFFRETE', 'DEPOT'); ?>
<select name="type" class="form-control form-update-user" id="type" tabindex=1>
    <?php foreach ($options as $option): ?>
        <option value="<?php echo $option; ?>"
        <?php if ($option === $thirds['type']): ?>
            selected="selected"
        <?php endif;
        ><?php echo $option; ?></option>
    <?php endforeach; ?>
</select>

答案 1 :(得分:0)

尝试这样做:

<select name="type" class="form-control form-update-user" id="type" tabindex=1>
  <option value="CLIENT" <?php echo $thirds['type']=='CLIENT'?'selected=selected':''; ?>>CLIENT</option>
  <option value="AFFRETE" <?php echo $thirds['type']=='AFFRETE'?'selected=selected':''; ?>>AFFRETE</option>
  <option value="DEPOT" <?php echo $thirds['type']=='DEPOT'?'selected=selected':''; ?>>DEPOT</option>
</select>

请记住,这是一种快速而肮脏的方法。喜欢创建一个循环来创建选项,而不是硬编码。