#javascript #php #dropdownbox
Вопрос:
Я успешно разработал каскадный выпадающий список с использованием javascript благодаря некоторому коду, который я нашел в Интернете. Html-код, который он генерирует, выглядит так, как ожидалось, когда я просматриваю код в своих инструментах веб-разработчика Firefox. Проблема у меня в том, что мой сервер php не может прочитать это из буфера $_POST. Ошибка, которую я получаю, — «Неопределенный индекс». Это почти так же, как если бы php не видел второй DDL, который динамически добавляется на мою html-страницу. Есть ли какой-то трюк, который я упускаю?
<script type="text/javascript">
var created = 0;
function displayAccordingly() {
if (created == 1) {
removeDrop();
}
//Call mainMenu the main dropdown menu
var mainMenu = document.getElementById('mainMenu');
//Create the new dropdown menu
var whereToPut = document.getElementById('myDiv');
var newDropdown = document.createElement('select');
newDropdown.setAttribute('id',"newDropdownMenu");
newDropdown.setAttribute('name',"AccountNumber");
whereToPut.appendChild(newDropdown);
if if (mainMenu.value == "Office Expense") { //The person chose Office Expense
var option000000000=document.createElement("option");
option000000000.text="---";
option000000000.value="000000000";
newDropdown.add(option000000000,newDropdown.options[null]);
var option160006235=document.createElement("option");
option160006235.text="COPY PAPER AND SUPPLIES";
option160006235.value="160006235";
newDropdown.add(option1160006235,newDropdown.options[null]);
var option160006237=document.createElement("option");
option160006237.text="COPIER RENTAL AGREEMENT";
option160006237.value="160006237";
newDropdown.add(option1160006237,newDropdown.options[null]);
} else if (mainMenu.value == "Custodial") { //The person chose Custodial
var option000000000=document.createElement("option");
option000000000.text="---";
newDropdown.add(option000000000,newDropdown.options[null]);
var option164006410=document.createElement("option");
option164006410.value="164006410";
option164006410.text="CONTRACTED SERVICES-FACILITIES";
newDropdown.add(option164006410,newDropdown.options[null]);
var option164006415=document.createElement("option");
option164006415.value="164006415";
option164006415.text="MAINTENANCE-GROUNDS";
newDropdown.add(option164006415,newDropdown.options[null]);
var option164006420=document.createElement("option");
option164006420.value="164006420";
option164006420.text="MATERIALS AND SUPPLIES";
newDropdown.add(option164006420,newDropdown.options[null]);
}
created = 1
}
function removeDrop() {
var d = document.getElementById('myDiv');
var oldmenu = document.getElementById('newDropdownMenu');
d.removeChild(oldmenu);
}
</script>
Что показывают инструменты разработки в виде моего HTML-кода:
Мой PHP-код (упрощенный)
$AccountNumber = $_POST['AcountNumber'];
Я могу прочитать категорию из буфера $_POST, но не номер учетной записи.
Таким образом, я думаю, что Javascript работает нормально, я не понимаю, почему значение AccountNumber не помещается в буфер $_POST.
Результаты print_r($_POST) выглядят следующим образом (сразу после [Категория] Я ожидал бы [Номер учетной записи]=>): Массив ( [действие] =>> POStepTwo [logged_in_user] =>>> 1625605397 [кто] =>>>> запрашивающий [Идентификатор пользователя] = > > > > > 1625605397 [Поставщик] = > > > > > > 2080MED [Отдел] = > > > > > > > Завод [Категория] =>>>>>>>> Офисные расходы [Инструкции по доставке] =>>>>>>>>> 1 [Примечание к запросу] =>>>>>>>>>> тест )
Спасибо за всю помощь.
Комментарии:
1. Не могли бы вы добавить вывод
print_r($_POST);
к вашему вопросу, пожалуйста?2. Массив ( [действие] => POStepTwo [logged_in_user] =>> 1625605397 [воз] = > > запрашивающий [Идентификатор пользователя] = > > > 1625605397 [Поставщик] = > > > > > 2080MED [Отдел] = > > > > > > Завод [Категория] = > > > > > > > Офисные расходы [Инструкции по доставке] =>>>>>>>> 1 [Примечание к запросу] =>>>>>>>>> тест ) Сразу после [Категория] Я бы ожидал [номер учетной записи].