Я не знаю, как это сделать, поэтому я подумал, что мне может понадобиться помощь …
Задний план:
У меня есть форма, которая должна иметь динамические выпадающие списки на основе почтового индекса (текстовое поле), это было сделано с помощью функции AJAX, которая называла PHP-файл, как показано ниже
.... <select name="choice1" id="choice1"> <?php //Block of code to populate drop down menu from a SQL command ?> </select> ....
Функциональность работает, так как она отображается при изменении почтового индекса и заполняется. Моя проблема в том, что я заметил ее не отдельно от формы, или я не могу использовать JS .. с этим устройством, так как теперь мне нужно принять значение из выпадающего меню в другое текстовое поле.
можно ли добавить это в форму? или даже по крайней мере использовать JS, чтобы я мог получить значение?
Спасибо..
РЕДАКТИРОВАТЬ
Это моя функция, которая вызывает файл PHP:
function choiceDropdowns(code){ var postcode = code.value; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("div4").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","createChoice123DropDown.php?postcode="+postcode,true); xmlhttp.send(); }
PHP-файл:
<body> <select name="choice1" id="choice1"> <?php $postcode = $_GET["postcode"]; $conn = mysql_connect("localhost", "XXXX", "XXXX"); mysql_select_db(XXXX, $conn) or die('Database not found ' . mysql_error()); $sql = "SELECT school_info.Name, school_info.schoolID FROM school_info INNER JOIN local_schools ON school_info.schoolID = local_schools.schoolID INNER JOIN valid_postcodes ON local_schools.postcodeID=valid_postcodes.id WHERE valid_postcodes.postcode != '$postcode' AND school_info.school_type ='S'"; $rs = mysql_query($sql, $conn) or die ('Problem with query' . mysql_error()); while($row = mysql_fetch_array($rs)){ echo '<option value="'.$row["schoolID"].'">'.$row["Name"].'</option>'; } ?> </select> </body>
Это моя форма (очевидно, вырезано):
<form method="get" id="eoi_form" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <td>Choice 1:<div id="div4"></div></td> </form>
Вы делаете это неправильно =) Почему бы вам не вернуть все свои варианты с помощью json, и после этого просто добавьте его в свой поле выбора:
var select = $('#my_select') $.post('update_options', function(response) { $.each(response.options, function(i, item) { var option = $('<option>'); if (item.value) option.attr('value', item.value); option.text(item.text); select.append(option); }); });