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
Форумы портала PHP.SU :: Версия для печати :: Добавить 2 блока в AJAX
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Добавить 2 блока в AJAX

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

1. pantela - 08 Октября, 2017 - 21:32:15 - перейти к сообщению
Есть форма на которой 5 полей "input" и "textare", их я определяю так:
CODE (javascript):
скопировать код в буфер обмена
  1. funcSendGameinfo.for_send = null;
  2. var fill_data = document.querySelectorAll("input, textarea");
  3. for (var i=0; i<fill_data.length; i++){
  4.     if(fill_data[i].value.length > 0){
  5.         var field_name = fill_data[i].name;
  6.         if(field_name == ''){field_name=i;}
  7.             funcSendGameinfo.for_send+=fill_data[i].name+'='+fill_data[i].value+'&';
  8.     }
  9. }

После Submit дклается AJAX запроса с GET, где на выходе у меня получаетя название поля и значение напр.
CODE (htmlphp):
скопировать код в буфер обмена
  1. name=Oleg
  2. surname=Solokin

...

На странице ещё есть 2 блока, которые определяю так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. var game_info = $("#content .middle .content table tbody tr td:eq(1)").html();
  2. var server_info = $("#content .middle .content table tbody tr td:eq(2)").html();


Вопрос:
Как мне их тоже надо добавить в for (тот что выше) что бы в итоге было
CODE (htmlphp):
скопировать код в буфер обмена
  1. name=Oleg
  2. surname=Solokin
  3. game_info = CounterStrike 1.5<br/>Server Name<br/>Player 18/18<br/>Map: de_dust
  4. server_info = IP:127.0.0.1<br/>Port:2210<br/>Ping: 50

...


Наверное блоки надо как-то присвоить к fill_data
CODE (htmlphp):
скопировать код в буфер обмена
  1. var more_info = {game_info:game_info, server_info:server_info};

...?

Спасибо.
2. pantela - 09 Октября, 2017 - 11:54:27 - перейти к сообщению
Хотяб дайте намёк, я что-то сложное спросил или плохо описал задачу...? Растерялся
3. andrewkard - 09 Октября, 2017 - 12:00:41 - перейти к сообщению
pantela пишет:
Есть форма на которой 5 полей "input" и "textare", их я определяю так:

как то все сложно, а просто serialize() нельзя?
4. pantela - 09 Октября, 2017 - 12:03:14 - перейти к сообщению
Ну serialize() если не ошибаюсь не безопастно + интересует даже через него как такое сделать..?
5. andrewkard - 09 Октября, 2017 - 12:17:43 - перейти к сообщению
pantela пишет:
если не ошибаюсь не безопастно

в чем?
pantela пишет:
интересует даже через него как такое сделать..?

если это у Вас не input, тогда ставите в форму скрытые input их наполняете,
делаете serialize и отправляете на сервер.
6. Мелкий - 09 Октября, 2017 - 12:39:31 - перейти к сообщению
andrewkard пишет:
в чем?

Ооо, там огромный список проблем и уязвимостей эксплуатируемых через unserialize. Поройтесь в changelog'ах и на bugs.php.net

Как итог - большой варнинг http://php.net/manual/en/functio....unserialize.php и более эксплуатируемые через unserialize атаки как уязвимости рассматриваться не будут и исправляться соответственно тоже.
7. andrewkard - 09 Октября, 2017 - 13:29:56 - перейти к сообщению
не спорю, с php функцией не все гладко
8. pantela - 09 Октября, 2017 - 19:55:37 - перейти к сообщению
Определать блок, записывтаь в скрытое поле и от туда уже доставать думаю сам смогу.

На соседнем борде подсказали так, проверю познее:
CODE (javascript):
скопировать код в буфер обмена
  1. var fill_data = document.querySelectorAll("input, textarea");
  2. var game_info = $("#content .middle .content table tbody tr td:eq(1)").html();
  3. var server_info = $("#content .middle .content table tbody tr td:eq(2)").html();
  4. var _collections=[fill_data,game_info,server_info];
  5.  
  6. for(var _j=0;j<_collections.length;_j++){
  7.         fill_data=_collections[_j];
  8.         for (var i=0; i<fill_data.length; i++){
  9.                 if(fill_data[i].value.length > 0){
  10.                         var field_name = fill_data[i].name;
  11.                         if(field_name == ''){field_name=i;}
  12.                                 funcSendGameinfo.for_send+=fill_data[i].name+'='+fill_data[i].value+'&';
  13.                 }
  14.         }
  15. }
  16.  


спс.

 

Powered by ExBB FM 1.0 RC1