Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: узнать имя и значение элемента

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Евгений 777
Отправлено: 19 Ноября, 2012 - 16:02:52
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




Привет всем!
Помогите пожалуйста валенку написать одну вещь. В общем методом аякса динамически создаются селекты (в зависимости от того что было выбрано в первом селекте), создаётся второй и наполняется новыми значениями. Проблема заключается в том что при выборе одного из значений селекта создаются сразу же несколько новых селектов. Существует div с id='myDiv' и внутри него создаются селекты с указанием имени и класса (имена также берутся из базы как и значения). Получается примерно такой код
CODE (html):
скопировать код в буфер обмена
  1. <div id= "myDiv"><select style="description_select_style" class="description_select" name="name1"><option value="1">значение1 </option><option value="2">значение2</option></select>
  2. <select style="description_select_style" class="description_select" name="name2"><option value="1">значение1 </option><option value="2">значение2</option></select></div>

Затем мне нужно написать функцию которая создавала бы новый запрос к базе с целью узнать нет ли у выбранного селекта ещё потомков. И вот загвоздка, не получается у меня никак узнать какой селект внутри этого дива был изменён и на какое значение. Помогите пожалуйста, подскажите код на jquery, бьюсь уже сколько времени, не получается никак, с JS и Jquery не силён Огорчение
Нужна просто строка типа

но конечно это не помогает.
Заранее огромное спасибо!

(Отредактировано автором: 19 Ноября, 2012 - 16:06:39)



-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
IllusionMH
Отправлено: 19 Ноября, 2012 - 16:24:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Евгений 777, ну если нужно получить имя и значения измененного селекта, то примерно так
http://jsfiddle[dot]net/IllusionMH/FSreR/
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Ноября, 2012 - 16:27:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function objLength(obj)
  3. {
  4.         var l = 0;
  5.         for(var k in obj)
  6.         l++;
  7.         return l;
  8. }
  9.  
  10. // .....
  11.  
  12. var changeSelects = {};
  13.  
  14. $('#myDiv').on('change', '.description_select', function(){
  15.        
  16.         changeSelects[this.name] = $(this).find('option:selected').val();
  17.        
  18. });
  19.  
  20. // .....
  21.  
  22. if(objLength(changeSelects) > 0)
  23. {
  24.         $.post('/path/to/script.php', changeSelects, function(result){
  25.        
  26.         });
  27. }
  28.  
 
 Top
Евгений 777
Отправлено: 19 Ноября, 2012 - 16:29:38
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




СПАСИБО!!! Вроде получилось. Тему пока закрывать не нужно наверное, будут ещё вопросы, буду здесь писать тогда, дабы не захламлять форум


-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Ноября, 2012 - 16:33:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Можно имена ещё отправить сразу.
И код сократится малость.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var changeSelects = {},
  3.     changeNames = [];
  4.  
  5. $('#myDiv').on('change', '.description_select', function(){
  6.        
  7.         changeNames.push(this.name);
  8.         changeSelects[this.name] = $(this).find('option:selected').val();
  9.        
  10. });
  11.  
  12. // .....
  13.  
  14. if(changeNames.length > 0)
  15. {
  16.         $.post(
  17.                 '/path/to/script.php',
  18.                 {'values' : changeSelects, 'names' : changeNames},
  19.                 function(result){
  20.                
  21.                 }
  22.         );
  23. }
  24.  
 
 Top
Евгений 777
Отправлено: 19 Ноября, 2012 - 20:04:50
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




Ещё вопросик появился. Улыбка Внутри span создаётся селект
CODE (html):
скопировать код в буфер обмена
  1. <div id= myDiv>
  2. </div>
  3. <span id= spanId></span>

Вот внутри этого span создаётся динамический селект. Выводится он примерно так
CODE (javascript):
скопировать код в буфер обмена
  1. $('#spanId').append(data);

А как написать код чтобы span был внутри дива и jquery заполнял его. Хотелось бы сделать код таким
CODE (html):
скопировать код в буфер обмена
  1. <div id= myDiv>
  2. <span id= spanId></span>
  3. </div>

Что я никак не могу понять этот js..


-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Ноября, 2012 - 20:34:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Span откуда берётся ?
 
 Top
Евгений 777
Отправлено: 19 Ноября, 2012 - 20:38:09
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




span тупо прописан на странице. Внутри него создаётся динамический селект. Если данные для нового селекта есть он отображается если нет, то этот селект не выводится. В коде span нужен лишь для ориентира куда вставлять селекты


-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
armancho7777777 Супермодератор
Отправлено: 19 Ноября, 2012 - 21:32:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Евгений 777 пишет:
А как написать код чтобы span был внутри дива

Так а в чём, собственно, проблема-то ?)
Ну вставьте span в div.
 
 Top
Евгений 777
Отправлено: 22 Ноября, 2012 - 07:33:58
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




так вот в том и проблема, что если вставляю спан в див то jquery не видит его, т.е. видно не может к нему обратиться. Я так понимаю что надо обращаться не напрямую к элементу span с его id, а сперва к диву по его id а потом к спану. Иначе не хочет почему то


-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
armancho7777777 Супермодератор
Отправлено: 22 Ноября, 2012 - 07:58:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Евгений 777 пишет:
Я так понимаю что надо обращаться не напрямую к элементу span с его id, а сперва к диву по его id а потом к спану. Иначе не хочет почему то

Нет.
CODE (html):
скопировать код в буфер обмена
  1. <span id="spanId"></span>

CODE (javascript):
скопировать код в буфер обмена
  1. $('#spanId').append(data);

Почему это у Вас не работает я не знаю.
 
 Top
Евгений 777
Отправлено: 22 Ноября, 2012 - 15:26:41
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




Понятно, это я видать накосячил чего то Радость , понемногу разбираюсь вроде. Теперь вот встал вопрос можно ли как нибудь с помощью js узнать есть ли в URL адрес контроллера? К примеру http://www.mysite.ru/first_page. Из этого примера можно ли узнать есть ли в URL first_page ? Перерыл весь инет, не нашёл ничего Огорчение

(Отредактировано автором: 22 Ноября, 2012 - 15:59:27)



-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Ноября, 2012 - 16:16:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Евгений 777 пишет:
Из этого примера можно ли узнать есть ли в URL first_page ? Перерыл весь инет, не нашёл ничего

1) indexOf
2) match
3) test
4) search
 
 Top
Евгений 777
Отправлено: 26 Ноября, 2012 - 01:13:46
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Июль 2010  
Откуда: Мурманск


Помог: 0 раз(а)




Товарищи, будьте добры подскажите теперь как мне узнать что пришло в POST запросе из PHP. В общем посылаю на php форму с несколькими полями и селектами. Мне надо после отправки формы проверить с помощью js какие данные пришли. И если они есть то вставить их на страницу с помощью того же js. Ситуация такая. Есть форма, в которой несколько селектов заполняются динамически с помощью AJAX, а также несколько инпутов. После отправки формы проводится проверки указанных данных на серваке и если есть какие то ошибки, то снова загружается форма и все указанные в инпутах данные загружаются из пришедших POST данных с помощью PHP. А вот выбранные ранее значения динамически созданных селектов никак не получается поставить. В общем как можно на js узнать что пришло из формы отправленной средствами php?


-----
Написать код не проблема. Написать правильный код- это наука.
 
 Top
armancho7777777 Супермодератор
Отправлено: 30 Ноября, 2012 - 22:07:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Только если сама форма была отправлена средствами js.
JSON в помощь.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.post('/path/to/script.php', changeSelects, function(result){
  3.  
  4.         // result['name1'], result['name2'], result['name3']
  5.  
  6. }, 'json'); // <--
  7.  



Файл /path/to/script.php:

PHP:
скопировать код в буфер обмена
  1.  
  2. $data = array();
  3.  
  4. $dara['name1'] = $_POST['name1'];
  5. $dara['name2'] = $_POST['name2'];
  6. $dara['name3'] = $_POST['name3'];
  7.  
  8. echo json_encode($dara);
  9.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB