Intereting Posts

AJAX, PHP и Javascript для заполнения проблем с устройством ввода формы

Я не знаю, как это сделать, поэтому я подумал, что мне может понадобиться помощь …

Задний план:

У меня есть форма, которая должна иметь динамические выпадающие списки на основе почтового индекса (текстовое поле), это было сделано с помощью функции 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); }); });