Intereting Posts
Изменение размера изображения php-формы Ошибка неопределенной функции mysql_connect () Ошибка – session_destroy () – попытка уничтожить неинициализированную сессию Zend DB и кодирование Управление предупреждениями пользователей Сортировка многомерного массива с использованием PHP Ошибка: mysqlnd не может подключиться к MySQL 4.1+, используя старую небезопасную аутентификацию PHP $ _POST и только идентификатор, нет имени Как я могу gzinflate и сохранить завышенные данные без его запуска? (Нашел то, что я считаю трояном на моем сервере) использование переменной JS в PHP Устаревший: функция eregi_replace () PHP Предупреждение: сеанс активен. Вы не можете изменить настройки ini-модуля сеанса в это время в /../ Установка cURL в php-ошибке Получить все дочерние, внуки и т. Д. Узлы под родителями, используя php с результатами запроса mysql Как объединить изображения внутри pdf программы?

AJAX Multiple Drop Downs

Я смотрю на этот сайт, чтобы сделать несколько выпадающих: Блог Рошана

И большая часть из них работает, у меня просто проблема с третьим выпадающим ящиком.
(Dropdown1: клиенты, Dropdown2: Location, Dropdown3: Zone)

На моей странице до сих пор, если я смотрю на источник, после выбора первого раскрывающегося списка (Client1), второе выпадающее заявление говорит:
<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog-location" onchange="getZone(Client1,this.value)">

Это то, что мне нужно, но теперь, когда я нажимаю на один из вариантов во втором раскрывающемся списке, он не помещается через скрипт getZone (). «Zonediv» не меняется, и я не уверен, переживает ли остальное или нет. Если я сам загружу getZone.php и поместил в свои собственные операторы GET в URL-адрес, я получаю результаты, но я не могу получить их на странице, с которой я звоню.

Я, наверное, просто пропустил что-то маленькое, но я так долго смотрел на него, что просто не могу понять.

HTML:

 <select style="width: 150px;" name="add-event-dialog-client_name" id="add-event-dialog-client_name" onchange="getLocation(this.value)"> <?php echo "<option selected='selected' disabled='disabled'>-Client Name-</option>"; $result = mysql_query("SELECT DISTINCT client_name FROM spc_clients"); while($row = mysql_fetch_array($result)){ echo "<option value='".$row['client_name']."'>".$row['client_name']."</option>"; } ?> </select> <p id="locationdiv"> <select style="width: 150px;" name="add-event-dialog-location" id="add-event-dialog-location" disabled="disabled"> <option>Select Client First</option> </select> </p> <p id="zonediv"> <select style="width: 150px;" name="add-event-dialog-zone" id="add-event-dialog-zone" disabled="disabled"> <option>Select Location First</option> </select> </p> 

Обе функции JS:

 function getLocation(client_name) { var strURL="display/getLocation.php?client_name="+client_name; var req = getXMLHTTP(); if (req) { req.onreadystatechange = function() { if (req.readyState == 4) { // only if "OK" if (req.status == 200) { document.getElementById('locationdiv').innerHTML=req.responseText; } else { alert("There was a problem while using XMLHTTP:\n" + req.statusText); } } } req.open("GET", strURL, true); req.send(null); } } function getZone(client_name,location) { var strURL="display/getZone.php?client_name="+client_name+"&location="+location; var req = getXMLHTTP(); if (req) { req.onreadystatechange = function() { if (req.readyState == 4) { // only if "OK" if (req.status == 200) { document.getElementById('zonediv').innerHTML=req.responseText; } else { alert("There was a problem while using XMLHTTP:\n" + req.statusText); } } } req.open("GET", strURL, true); req.send(null); } } 

getLocation.php:

 <?php include 'connect.php'; $client = $_GET['client_name']; $query="SELECT location FROM spc_clients WHERE client_name='$client'"; $result=mysql_query($query) or die(mysql_error()); ?> <select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog- location" onchange="getZone(<?=$client?>,this.value)"> <option selected='selected' disabled='disabled'>-Location-</option> <?php while($row = mysql_fetch_array($result)){ echo "<option value='".$row['location']."'>".$row['location']."</option>";} ?> </select> 

getZone.php:

 <?php include 'connect.php'; $client = $_GET['client_name']; echo $client; $location = $_GET['location']; echo $location; $query="SELECT zone FROM spc_clients WHERE (client_name='$client' && location='$location')"; $result=mysql_query($query) or die(mysql_error()); ?> <select style="width: 150px;" id="add-event-dialog-zone" name="add-event-dialog-zone"> <option selected='selected' disabled='disabled'>-Zone-</option><option><?php while($row = mysql_fetch_array($result)){ echo $row['zone'];} ?> </option> </select> 

Попробуйте помещать кавычки вокруг Client1 – без кавычек, javascript считает, что это переменная, и поскольку вы не определили какую-либо переменную Client1, вы получаете сообщение об ошибке. Помещение котировок вокруг него делает его строкой, которую вы хотите передать getZone ().

Попробуйте поместить это в getLocation.php:

<select style="width: 150px;" id="add-event-dialog-location" name="add-event-dialog- location" onchange="getZone('<?=$client?>',this.value)">

Если у кого-либо из ваших имен клиентов есть кавычки в них, вы должны будете убежать от них, см. Здесь, как это сделать: Передайте строку PHP переменной JavaScript (и избегайте новых строк) .