Чтобы динамически заполнять элементы управления DropDown в моей HTML-форме, я написал код, который вызывает AJAX-вызов файла .php. Этот файл .php заполняет элемент управления DropDown одним значением столбца.
Во всем этом процессе три файла играют роль.
(1) HTML-файл, который содержит форму ввода,
(2) файл .js, содержащий базовый код AJAX, и
(3) Файл .php, содержащий код для заполнения элемента управления DropDown в моей HTML-форме.
Ниже я даю необходимый код для всех трех файлов соответственно. DropDown не заполняется, поэтому я хочу знать необходимые исправления, необходимые в приведенном ниже коде.
Обратите внимание, что функция MakeRequest в файле .js принимает несколько аргументов. Эти аргументы:
(1) имя элемента управления DropDown HTML,
(2) Весь запрос Sql.
(3) Столбец ID в таблице MySQL.
(4) Фактический столбец, значения которого необходимо заполнить в элементе управления DropDown.
В этом контексте, например, я ссылаюсь на таблицу MySQL с именем: «ElectionCategoryMaster», которая состоит из следующих столбцов:
(1) ecID Int P.K
(2) ecName varchar
Я передаю столбец идентификатора в качестве аргумента, чтобы я мог получить это значение идентификатора, когда пользователь выбирает ecName из DropDown. Это, ecID, будет храниться в другой таблице.
[Код: HTML-файл]
<td onactivate="javascript: MakeRequest('inCategory','SELECT * FROM electioncategorymaster', 'ecid', 'ecname');">
<select id="inCategory" name="inCategory" class="entryFormInputBoxColor">
</select>
</td>
[Код: файл .js] [AJAX]
function MakeRequest(DropDownName, SqlQuery, IdColumnName, DisplayColumnName)
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText);
}
}
xmlHttp.open("GET", "filldropdown.php?DropDownControlName = " + DropDownName + "&SqlQuery = " + SqlQuery + "&IdColumnName = " + IdColumnName + "&DisplayColumnName = " + DisplayColumnName, true);
xmlHttp.send(null);
}
function HandleResponse(response)
{
document.getElementById('ResponseDiv').innerHTML = response;
}
[Код: .php файл] [Заполнение требуемого элемента управления DropDown]
<?php
//Get values
$dropdownControlName = $_GET['DropDownControlName'];
$sqlQuery = $_GET['SqlQuery'];
$idColumnName = $_GET['IdColumnName'];
$displayColumnName = $_GET['DisplayColumnName'];
echo "dfddddf";
dbconnection::OpenConnection();
$result = dbaccess::GetRows($sqlQuery);
// JavaScript code to populate the DropDown.
echo "<select name='". $dropdownControlName ."'>";
echo "<option>Select</option>";
while($row=mysql_fetch_array($result))
{
echo "<option value=<?=". $row[$idColumnName] ."?>><?=". $row[$displayColumnName] ."?></option>";
}
echo "</select>";
dbconnection::CloseConnection();
?>