2011-01-06 2 views
1

Я пытаюсь понять, как изменить пример в этом http://www.w3schools.com/php/php_ajax_database.asp так, чтобы база данных запрашивалась для нескольких выборов. Я имею в виду, если выбрано несколько опций (добавив ключевое слово «multiple» в форму), как мне выполнить запрос базы данных для этих множественных выборов?php ajax database question

ответ

0

Не смотря на эту страницу, чтобы отправить несколько значений из списка, просто добавьте [] сразу после поля имени: <select multiple="multiple" name="foo[]">.

Массив запроса ($ _GET или $ _POST в PHP) будет содержать ключ «foo», который отображает несколько «выбранных» значений. После того, как вы изменили свою страницу, чтобы получить более четкое представление о том, что происходит, просто сделать:

print_r($_GET['foo']); // or $_POST, whichever 

Тогда вам просто нужно изменить сценарий сервера для хранения (или делать что угодно) с множеством полученных значения.

В следующем примере показано, как создать строку из нескольких выбранных значений, путем регистрации OnChange обработчик выбора элемента:

document.getElementById("theSelect").onchange = function() { 
    var len = this.options.length; 
    var selected = []; 
    for(var i = 0; i < len; i++) { 
     if(this.options[i].selected) { 
      selected.push(this.options[i].value); 
     } 
    } 
    alert(selected); 
    //so you can do something like getUsers(selected.join(",")); 
}; 

Working example.

+0

я изменить форму <выберите имя = "acad_year []" OnChange = "showUser (это. значение) "multiple>. Моя проблема заключается в том, как я могу обработать javascript на стороне клиента в этом примере для отправки множественного выбора. –

+0

@ Арун - ты, я скоро отредактирую. – karim79

+0

Кроме того, если вы пойдете с этим подходом, вам не понадобятся скобки после названия thingie. – karim79

0

Это то же самое. Разница в том, что при отправке данных на сервер вы отправляете список имен. Затем вы можете использовать php на сервере для создания HTML-кода и возврата его.

+0

Да, как мне изменить javascript на стороне клиента в этом примере, чтобы отправить массив выбранных параметров? –

0

если ур с помощью флажков попробуйте использовать метод POST вместо GET

xmlhttp.open("POST","getuser.php",true); 

<input tabindex="3" type="checkbox" name="gender[]" id="gender" value="M">Male 
<input tabindex="4" type="checkbox" name="gender[]" id="gender" value="F">Female 

try print_r($_POST); 

Благодаря Sanil