Member 1003363 Ответов: 1

Заполнить выпадающий список из базы данных в зависимости от другого выпадающего списка


function update_name(id)
{

    var xmlhttp=new XMLHttpRequest();
     xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
     document.getElementById("txt").innerHTML=xmlhttp.responseText;
     }
 }
    xmlhttp.open("GET","update_data.php?q="+id,true);
    xmlhttp.send();
}


я использую этот код из http://www.w3schools.com/php/php_ajax_database.asp для заполнения выпадающего списка в зависимости от первого выпадающего списка.
Я получаю значения, и они отображаются в выпадающем списке, но они не отображаются в исходном коде и не попадают в форму отправки.

Что я уже пробовал:

я пробую код из http://www.w3schools.com/php/php_ajax_database.asp ссылка,
заменена таблица с выпадающим списком

Karthik_Mahalingam

что вы имеете в виду "он не отображается в исходном коде"

Sinisa Hajnal

распечатка responseText...в зависимости от того, что вы получите обратно, вам может понадобиться перебрать результат или сделать какое-то создание li на стороне сервера...

Кроме того, размещение ссылок в том, что я пробовал, не работает просто потому, что вы изменили код для своих нужд, так что он уже не тот.

1 Ответов

Рейтинг:
1

David_Wimbley

Если вы не заставляете себя использовать простой javascript, я бы посоветовал вам взглянуть на jQuery.

Кроме того, я не знаю, что означает "я получаю значения, и они отображаются в выпадающем списке, но они не отображаются в исходном коде и не попадают в форму отправки", поэтому я просто проигнорирую эту часть и дам вам основную идею зависимого выпадающего выбора.

В любом случае. Допустим, у вас есть следующие выпадающие списки

<select name="option1" id="option1">   <option value="1">Select 1</option></select>
   <option value="2">Select 2


<select name="option2" id="option2">   <option value="">Select</option></select>
</option>


Вариант 1 должен иметь в себе некоторые данные, потому что вам нужно каким-то образом запустить зависимые выпадающие списки. Таким образом, основываясь на этом, у вас будет событие изменения, привязанное к option1

$("#option1").change(function(){
	$.ajax({
		url: "Url to however you get data here.php",
		type: "GET",
		dataType: "json",
		contentType: "application/json;charset=utf-8",
		async: true,
	}).success(function(data){
		var options = "<option value=''>Select</option>";
		$(data).each(function(k, v){ 
			options += "<option value='"+v.Value+"'>"+v.Display+"</option>";
		});
		
		$("#option2").html(options);
	}).error(function(){
		// something blew up, show error here
	});
});


Таким образом, в этом коде вы делаете вызов ajax, чтобы получить свои данные, а затем внутри .success перебираете возвращенные результаты, чтобы создать новые параметры для выпадающего списка option2.

Отказ от ответственности, я набрал этот код и не запускал его. Общая идея здесь верна для зависимых выпадающих списков, и, учитывая, что я не знаю, как выглядят ваши данные/код на стороне сервера, это все, что я возьму. Если вам нужна дополнительная помощь, вот поиск google, который имеет массу результатов, которые могут помочь вам выполнить эту функцию.

зависящие от jquery выпадающие списки php