2017-01-31 62 views
1

這是我的HTML + PHP:防止雙重DATAS在選擇框中

<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與功能齊全的選定值:

<script type="text/javascript"> 

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

</script> 

但後來我還有一個值來選擇...邏輯。

預先感謝您。

回答

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> 
+0

問題是,在這裏,你不會刪除一個與選定的值相同的值。的確,代碼可以如你所見,但我想我可以找到更聰明的東西。 – Kuartz

+0

這正是我所期待的。除了我想在JS中這樣做,所以我沒有考慮過PHP。謝謝。 – Kuartz

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> 

請記住,這是一個快速和骯髒的方式來做到這一點。優先創建一個循環來創建選項,而不是對其進行硬編碼。

+0

謝謝你的回答。我會盡量做一個循環。 – Kuartz