php select onChange ile farklı veri doldurmamak

1 Cevap php

MySQL veri ile (ler) seçeneğini doldurmak için bazı açıklama gerekiyor. Temelde ne yapmaya çalışıyorum olduğunu:

Içinde bazı verilerle bir ilk seçme kutusu olacak.

<select> 
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

when the user selects a option in the first select, there is a second select below that, which should reflect the values according to the selection made in the first select.

<select> 
  <option>1.1</option>
  <option>1.2</option>
  <option>1.3</option>
</select>

Veri MySQL commin olduğunu. Ben gerek aynı sayfaya göndermek için emin değilim, ama ben yaparsam, nasıl Üyeliğiniz önceki seçin kutularına seçilen değerleri korumak için? i javascript kullanmak gerekiyor?

herhangi bir yardım?

Teşekkürler.

1 Cevap

Eğer bir sayfa yenileme gerekmez böylece javascript kullanmalısınız. Ben sadece soru tekrar okumak ve dinamik veri çekmek için bir saniyede bir AJAX isteği içeren bir çözüm olacak:

HTML

<select name="select1" id="select1"> 
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<select name="select2" id="select2"> 
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

jQuery

<script type="text/javascript">
$(document).ready(function() {
    $('#select1').change(getDropdownOptions);
});

function getDropdownOptions() {
    var val = $(this).val();
    // fire a POST request to populate.php
    $.post('populate.php', { value : val }, populateDropdown, 'html');
}

function populateDropdown(data) {
    if (data != 'error') {
        $('#select2').html(data);
    }
}
</script>

populate.php

<?php
if (!empty($_POST['value'])) {
    // query for options based on value
    $sql = 'SELECT * FROM table WHERE value = ' . mysql_real_escape_string($_POST['value']);

    // iterate over your results and create HTML output here
    ....

    // return HTML option output
    $html = '<option value="1">1</option>';
    $html .= '<option value="b">B</option';
    die($html);
}
die('error');
?>