Общая ошибка
Здравствуйте.
Есть код. function do_a() { var ms = $('select[name="name"]'); $.ajax({ type: "POST", url: "/test.php", data: "d_id="+document.getElementById("d_id").value, success: function ( data ) { ms.empty().html(data); } }); } do_a(); var s = document.getElementById('name'); alert(s.value); PHP скрипт генерирует ответ (только 1 option): <option value="add">Добавить</option> Но алерт выдаёт пустоту, хотя должен показать add, потому как на экране пользователя в селекте активна строка "Добавить" (она ведь единственная). |
Цитата:
|
Цитата:
Как же проверить, если в дате только value=add, тогда выполнить еще функцию? |
В success и проверяйте, что вернул сервер, вот только в таком случае удобнее не html, а json.
|
Цитата:
Сам понимаю, что с HTML'ем как-то "покостыльному" использовать. Лучше добавлять через option самим JS'ом. Буду безмерно благодарен за рабочий код. Гранд Мерси! |
Да просто, отдавать сервером данные в json формате - exit(json_encode(массив данных)), и передав соответствующий заголовок типа данных. Клиент получит в этом случае объект (в вашем пример, data будет объектом), свойствами которого будут ключи массива переданного сервером, а их значения, значениями массива. Например, сервер отдает данные как массив 'value'=>'add'. Проверить, значение на клиенте так
if(data.value=='add') .... Но уж больно странный "протокол" получается. Не известно чего вы делаете, но поищите здесь на форуме темы по "связанным спискам". Даже если у вас не это, все равно будет полезно почитать как и каким форматом обменивается сервер с клиентом на запросы, и как по возвращенным данным динамически формируются/обновляются списки на клиенте. |
Не думал, что странным покажется моё объяснение.
Тогда собственно сама задача. 1. Подгружаем данные в selector 2. Последняя строчка <option value="add>Добавить</option> 3. Далее проверка, если у нас только "Добавить" в селекторе, тогда в див добавляем новое инпут поле для ввода новых данных. P.S. Собственно, всё остальное решено. Кроме 3-го пункта. "Затык" с этой проверкой. |
Цитата:
|
Цитата:
Кнопка добавить должна быть всегда, даже когда есть и другие option. Вот когда сервер отдаёт другие опции, у меня не получилось js'ом добавить option value="add". Если подскажите, в чём проблема - буду благодарен. |
Цитата:
Что касается одной опции присутствующей всегда - попробуйте в списке с одной опцией сделать выбор. |
Часовой пояс GMT +3, время: 20:31. |