Генерация данных после выбора списка выбора

Скажем, у меня есть форма с полем почтового индекса (text) и полем школы (selection), в настоящее время я могу заполнить список выбора именами школ из базы данных, но я хочу, чтобы почтовый индекс, связанный с выбранной школой, автоматически заполнить:

<?php

$conn = mysqli_connect("localhost", "twa312", "dam6av9a");
mysqli_select_db(twa312, $conn)
or die ('Database not found ' . mysqli_error() );

$options = '<option value="0"></option>';

$sql = "SELECT school_info.name AS name, local_schools.postcodeID AS postcode FROM school_info INNER JOIN local_schools ON local_schools.schoolID = school_info.schoolID";
$rs = mysqli_query($sql, $conn)
or die ('Problem with query' . mysqli_error());


person AJJ    schedule 16.05.2013    source источник
comment
Есть два способа: один с использованием ajax, второй способ заполнить массив в js и onchange получить значение из массива js и заполнить значение.   -  person web2students.com    schedule 16.05.2013
comment
каким будет метод JS?   -  person AJJ    schedule 16.05.2013


Ответы (1)


Я вижу два возможных решения для этого. Создание массива javascript с идентификатором школы в качестве ключа и почтовым индексом в качестве значения. И при изменении опции установите значение поля сообщения соответственно. Или использовать ajax для загрузки из базы данных.

Например, вы можете сгенерировать что-то вроде этого:

<script> 
    var postcode_list = JSON.decode('<?php echo json_encode($postcode_array);?>');
    // put this function inside select on change method
    // also if you load default value you can add to onload method
    function update_postcode(){
        var select_val = jQuery("#primary").val();

        var postcode = postcode_list['+ select_val +'];

        //checking if we have such value
        if(typeof postcode != 'undefined'){
            jQuery("#post").val(); 
        }
</script>

Код может не работать, не тестировался.

person insanebits    schedule 16.05.2013
comment
будет ли это метод ajax? если да, то каким будет метод, использующий массив javascript? - person AJJ; 16.05.2013
comment
это метод массива, ajax, вероятно, будет использовать jQuery.ajax('URL для вызова').done(функция (ответ){// проверить, если удалось, загрузить значения}); - person insanebits; 16.05.2013