powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамическое добавление элементов в выпадающем списке
27 сообщений из 27, показаны все 2 страниц
Динамическое добавление элементов в выпадающем списке
    #35280142
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!
Обращаюсь к вам с очередным вопросом, касающимся форм, JavaScript и прочего :)
Итак,...

Имеется главная страница. Назовём её, допустим, add_zakaz.php. На этой странице есть выпадающий список заказчиков, который при загрузке страницы формируется из базы данных MySQL. Рядом со списком есть кнопка "Добавить", которая в отдельном окне открывает страницу добавления заказчиков - add_customer.php. Пользователь на странице add_customer.php добавляет несколько заказчиков в MySQL, после чего закрывает эту страницу. Как без перезагрузки основной страницы (add_zakaz.php) добавить в выпадающий список на этой странице новых заказчиков (наименования и ID которых нужно взять из MySQL)?
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280161
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай дочернее окно и добавляет список опенеру.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280228
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю так:

Из основной страницы (add_zakaz.php) дочерняя (add_customer.php) открывается JavaScript-функцией:

Код: plaintext
1.
2.
3.
function OpenNewWindowCust()
{
window.open("add_customer.php","","toolbar=0, resizable=1, Scrollbars=1");
}

На странице добавления заказчиков (add_customer.php) к кнопке "Добавить"
Код: plaintext
<input type="submit" value="Добавить" name="add" onclick="AddToSelect();">

...привязываю функцию (zakaz - имя формы в основном документке, customer- имя выпадающего списка в основном документе:

Код: plaintext
1.
2.
3.
4.
5.
6.
<SCRIPT language=javascript>
function AddToSelect()
{
parent.document.zakaz.customer.options[document.zakaz.customer.options.length] = new Option('1', '111');
}
//-->
</SCRIPT>

Цифры 1 и 111 - поставила для примера.
Но при нажатии кнопки "добавить" в дочернем окне не происходит добавления нового элемента в списке основного окна. В чём моя ошибка?
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280329
rutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
parent замени на opener
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280353
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло:
Код: plaintext
1.
2.
3.
function AddToSelect()
{
opener.document.zakaz.customer.options[document.zakaz.customer.options.length] = new Option('1', '111');
}

Имеет ли значение, что тип кнопки, к которой привязана эта функция, - submit (для того, чтобы при нажатии выполнялся ещё и сценарий php), а не button?
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280382
rutz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
function AddToSelect()
{
opener.document.zakaz.customer.options[opener.document.zakaz.customer.options.length] = new Option('1', '111');
}
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280415
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправила, не получается :(

Код: plaintext
1.
2.
3.
function AddToSelect()
{
opener.document.zakaz.customer.options[opener.document.zakaz.customer.options.length] = new Option('1', '111');
}
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280439
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не получится. опшын откриэйчен в другом тугаменте.
Код: plaintext
1.
2.
3.
4.
el=window.opener.document.createElement("OPTION");
el.innerHTML="qqq";
el.setAttribute("value","qqq", 0 );
window.opener.document.getElementById("sel").appendChild(el);
А вот так получится точно.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35280930
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши хоть - получилось или нет. Времени же я потратил и проверил - где работает, а где - нет.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281055
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое! Работает :)
Сейчас буду думать, как вместе случайных значений подставить ID (в качестве value у option) и наименование последнего добавленного элемента :)
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281082
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты ваще... У тебя то самое окно, которое всё инсертит после сабмита (таржет - туда же) - знает чего и как проинсертилось (или может, хе-хе, узнать). Закрывай его не на какой-нибибудь онклик (и добавляй свои опшыны), а когда ... сама думай.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281101
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Сейчас буду думать, как вместе случайных значений подставить ID (в
> качестве value у option) и наименование последнего добавленного
> элемента


Так мыслю, сначала надо бы отослать на сервер запрос на добавление клиента, а после, по результатам запроса добавлять опцию с нужным айди клиента. Так что, в сторону ajax глядеть надобно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281103
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleajax глядеть надобно...
Не надобно. Окно - то другое, елки-палки, его при перезагрузке и закрыть-то не жалко...
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281106
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да фиг с ним, с окном то... Дэвушко хочет айди новой записи в табличек клиентов БД запихнуть в value опции, а его только сервер может вернуть. Ну, не генерить же его на клиенте )
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281108
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> в табличек клиентов

в табличке клиентов
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281114
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не сгенерить. Я уже ответил, как сделать. Читай внимательнее. Страница, которая инсертит после сабмита - получает эти айдишники, чего надо куда надо в селект добавляет и - закрывается.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281122
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, догнал )) Перезагружать дополнительную страницу по сабмиту, и чтоб она уже после перезагрузки добавила....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281124
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281766
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
страдаете херью,изобретая велосипед? - возмите ExtJs и пишите на нём нормальные кнопки,окна, прочие радости оконного интерфейса!
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281797
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeЧитай внимательнее. Страница, которая инсертит после сабмита - получает эти айдишники, чего надо куда надо в селект добавляет и - закрывается.
А вот и нет...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<SCRIPT language=javascript>
function AddToSelect()
{
var opisanie = "<?php
$op = mysql_query("SELECT name_Cust FROM customers");
$dobavl = mysql_num_rows($op) - 1;
print mysql_result($op, $dobavl, 0);
?>";
sel=window.opener.document.createElement("OPTION");
sel.innerHTML=opisanie;
sel.setAttribute("value",opisanie,0);
window.opener.document.getElementById("customer").appendChild(sel);

}

//-->
</SCRIPT>

Пользователь вводит нового заказчика, нажимает кнопку "Добавить", выполняется функция AddToSelect, в которой к этому моменту находится значение предпоследнего заказчика, а не последнего.
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281832
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то тут все сильно запущено. Оно конечно будет работать до первого чиха, пока добавлением будет заниматься один-единственный клиент и пока в таблице customers не появятся "дырки" от удаления устаревших/ошибочных/тестовых записей. Настоятельно рекомендую переделать по человечи.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281836
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> пока в таблице customers не появятся "дырки" от удаления

С этим, пожалуй, перегнул. Вы же не используете ID заказчиков.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281842
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SweetApple
Пользователь вводит нового заказчика, нажимает кнопку "Добавить", выполняется функция AddToSelect, в которой к этому моменту находится значение предпоследнего заказчика, а не последнего.
Народ! Подскажите, пожалуйста, как последнего заказчика передать списку?
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281855
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, подсказали ж, еще вчера ))

Смысл такой:
- открываем окошко, грузим в него страничку с формой, заполняем форму, жмем "отправить", то есть, сабмитим форму на сервер - это собственно сделано.
- на сервере разбираем что прислали с клиента (проверяем на повторяющееся имя, или допустимые символы, хотя, это лучше делать еще до отправки формы).
- если все нормально - делаем запрос INSERT и проверяем опять же, нет ли ошибки добавления.
- если нормально - выполняем mysql_insert_id - это будет как раз айди только что добавленной записи.
- в случае отсутствия ошибок возвращаем на клиент функцию жабаскрипта добавления опции (и докучи, закрытия окна) с уже прописанными именем и айди клиента, при ошибках возвращаем описание ошибок и обратно заполненную форму для исправления.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281857
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> именем и айди клиента

именем и айди заказчика, конечно
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35281892
SweetApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle
Дык, подсказали ж, еще вчера ))

Смысл такой:
- открываем окошко, грузим в него страничку с формой, заполняем форму, жмем "отправить", то есть, сабмитим форму на сервер - это собственно сделано.
- на сервере разбираем что прислали с клиента (проверяем на повторяющееся имя, или допустимые символы, хотя, это лучше делать еще до отправки формы).
- если все нормально - делаем запрос INSERT и проверяем опять же, нет ли ошибки добавления.
- если нормально - выполняем mysql_insert_id - это будет как раз айди только что добавленной записи.
- в случае отсутствия ошибок возвращаем на клиент функцию жабаскрипта добавления опции (и докучи, закрытия окна) с уже прописанными именем и айди клиента, при ошибках возвращаем описание ошибок и обратно заполненную форму для исправления.
Posted via ActualForum NNTP Server 1.4

Спасибо огромное! Всё получилось!
...
Рейтинг: 0 / 0
Динамическое добавление элементов в выпадающем списке
    #35282001
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeusTheTrueGodстрадаете херью,изобретая велосипед? - возмите ExtJs и пишите на нём нормальные кнопки,окна, прочие радости оконного интерфейса!
Ну и написал бы нам соответствующий код на экстжс. Весь форум бы порадовался.
ПС Почитай Генриха Гейне "Боги в изгнании" (это про твой ник).
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамическое добавление элементов в выпадающем списке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]