2016-03-30 28 views
2

Yapmaya çalıştığım, seçilebilecek bir div etiketi içindeki seçenekleri, dilbilgisel olarak mümkün olması durumunda eklemek. Seçme div etiketindeki seçenekler nasıl programlanır?

Bu

benim html kodu

benim php komut
<select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" > 
    <option value="" disabled selected>Select your option</option> 
    <option value="saab">Saab</option> 
    <option value="fiat">Fiat</option> 
    <option value="audi">Audi</option> 
</select> 

olduğunu ben bir sayımını alır bir değişken işleve geçirilen bir

$count = count_answers_belongToOne_question($questionNumber); 

Yani $ sayı verilir eğer diyelim 2 değeri, sadece div etiketini seçen 2 seçeneği göstermek istiyorum. Yani, değerin $ sayımına göre, <select>'da güncellenmesini istiyorum.

kimse bana bir fikir veya Sadece oluşturulmadan önce sayfaya seçenekleri enjekte etmek basit bir döngü kullanmak bu

+0

seçenekler dinamik mi? bu bir diziden mi geliyor? – Adersh

+0

Bu seçenekler şu anda kodlanmış geliyor, ama ben o veritabanı –

+0

dan gelmek istiyorum o değişken $ saymak geliyor, ve ne kadar çok seçenek –

cevap

1

güzel yolu denemek sayma değerini php olarak çalışma zamanında

window.onload = function(){updateSelect(<?=$count ?>);} 
olarak ayarlayabilir Bu

<script> 
function updateSelect(options){ 

var x = document.getElementById("selector"); 

if (x.length > 0) { 
    for (i = options; i < x.length+1; i++){ 
     x.remove(options); 
    } 
} 
} 
window.onload=function(){ 
xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
    var count = xhttp.responseText; 
    updateSelect(count); 
    } 
}; 
xhttp.open("GET", "url/to/get/count", true); 
xhttp.send(); 
} 
</script> 

Hope gibi 63.210

veya ajax ile bu kimse yardımcı olur!

3

yapmayı gitmek için nasıl bir çözüm önerebilir. Çekilecek bir dizi seçenek verisinin olduğunu varsayacağım. dinamik javascript ve PHP kullanarak seçeneği eklemek için iki yol vardır

<?php 
    $optionData = array(
     array('value' => 'saab', 'label' => 'saab'), 
     ... 
    ); 
?> 

<select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" > 
    <option value="" disabled selected>Select your option</option> 
    <?php 
     for($i = 0; $i < count; $i++) { 
      echo '<option value="' . $optionData[$i]["value"] . '">' . $optionData[$i]["label"] . '</option>'; 
     } 
    ?> 
</select> 
1

,

Seçenek 1: JavaScript kullanarak - Ben seçme seçenekleri varsayıyorum statik

Adım 1: set gerek seçeneği seçer json değişkeni 2. Adım: $ sayım php değişkenini js sayım değişkeni olarak atayın. Adım 3: js sayım değişkeninize bağlı olarak seçim seçenekleri oluşturabilir ve seçim elemanına ekleyebilirsiniz.

Seçenek 2: PHP ve Ajax

Adım 1: ajax req arayıp HTML olarak seçeneklerinizi verecek PHP fonksiyonunu oluştur: $ count php varible Adım 2 bir ajax isteği oluşturmak ve göndermek gerekir. Adım 3: Bu seçeneği HTML dizesi hedef seçim öğesi kimliğine ayarlayın.

1
select your element first 
var select = document.getElementById('selectElementId'); 

onclick or any other event add this functionality 
function addOption() 
{ 
var opt = document.createElement('option'); 
    opt.value = 'YourValue'; 
    opt.innerHTML = 'Option1'; 
    select.appendChild(opt); 
} 
1

diğer yanıtlara sözü ama burada HTML Dome seçme seçenekleri

<script> 
function updateSelect(options){ 

var x = document.getElementById("selector"); 

if (x.length > 0) { 
    for (i = options; i < x.length+1; i++){ 
     x.remove(options); 
    } 
} 
} 
window.onload = function(){updateSelect(2);} 
</script> 

size güncellenmesi için basit javascript olarak PHP ile bunu yapmanın bu

vardır
<?php 
$vehicles = array("saab"=>"Saab","fiat"=>"Fiat","audi"=>"Audi"); 
$count = count_answers_belongToOne_question($questionNumber); 
array_splice($vehicles , $count); 
?> 
<select class="form-control multiplechose_questionTypes" name="selector[]" id="selector" > 
    <option value="" disabled selected>Select your option</option> 
    <?php 
     foreach ($vehicles as $key => $value) { 
    ?> 
     <option value="<?php echo $key;?>"><?php echo $value;?></option>    
    <?php 
     } 
    ?> 
</select> 
+1

'array_splice' işlevini kullanmak orijinal koleksiyon için yıkıcı bir değişikliktir. UI tabanlı işlemler için bu kaçınılmalıdır. –