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 :: Помогите с результатом вывода данных Ajax

 PHP.SU

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


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

> Описание: Как указать разные места вывода на странице полученных данных Ajax-ом?
keilman
Отправлено: 11 Февраля, 2013 - 00:57:49
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Янв. 2013  


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




Есть скрипт Ajax авторизации:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <script language="javascript" type="text/javascript">
  2. /* Авторизация */
  3. $(document).ready(function()
  4. {
  5.         $("form#vhod").submit(function()
  6.         {
  7.                 $.ajax(
  8.                 {
  9.                         type: "POST",
  10.                         url: "ajax/autorise_block.php",
  11.                         data:
  12.                         {
  13.                                 user_login:$("input#login").val(),
  14.                                 user_parol:$("input#parol").val()
  15.                         },
  16.                         success: function(data)
  17.                 {
  18.                         $("div#autorise").html(data);
  19.                 }
  20.         });
  21.         return false;
  22.         });
  23. });
  24. </script>


Работает исправно, получает логин и пароль из формы входа, посылает php скрипту, тот проверяет по базе, если найден юзер, выводит инфу о нем, типа л/к, если не найден - выводит ошибку. Все результаты действий он выводит в том же блоке где и была форма, без перезагрузки страницы, блок div #vhod

Есть всего три блока:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <div id="vhod">Вывод форму входа или инфы о юзере</div>
  2. <div id="tovary">вывод товаров</div>
  3. <div id="statistic">вывод статистики</div>


Так вот, как мне дописать верхний скрипт или написать еще дополнительный что бы можно было указать еще параметр url обработчика и блок для вывода результатов?

Должно получиться что то типа этого:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <script language="javascript" type="text/javascript">
  2. /* Авторизация */
  3. $(document).ready(function()
  4. {
  5.         $("form#vhod").submit(function()
  6.         {
  7.                 $.ajax(
  8.                 {
  9.                         type: "POST",
  10.                         url: "ajax/autorise_block.php",
  11.                         data:
  12.                         {
  13.                                 user_login:$("input#login").val(),
  14.                                 user_parol:$("input#parol").val()
  15.                         },
  16.                         success: function(data)
  17.                 {
  18.                         $("div#autorise").html(data);
  19.                 }
  20.         });
  21.         return false;
  22.         });
  23. });
  24. </script>
  25.  
  26. <script language="javascript" type="text/javascript">
  27. /* Авторизация */
  28. $(document).ready(function()
  29. {
  30.         $("form#vhod").submit(function()
  31.         {
  32.                 $.ajax(
  33.                 {
  34.                         type: "POST",
  35.                         url: "ajax/другой обработчик №2.php",
  36.                         success: function(data)
  37.                 {
  38.                         $("div#второй блок вывода товаров").html(data);
  39.                 }
  40.         });
  41.         return false;
  42.         });
  43. });
  44. </script>
  45.  
  46. <script language="javascript" type="text/javascript">
  47. /* Авторизация */
  48. $(document).ready(function()
  49. {
  50.         $("form#vhod").submit(function()
  51.         {
  52.                 $.ajax(
  53.                 {
  54.                         type: "POST",
  55.                         url: "ajax/обработчик №3.php",
  56.                         success: function(data)
  57.                 {
  58.                         $("div#блок №3 вывод статистики").html(data);
  59.                 }
  60.         });
  61.         return false;
  62.         });
  63. });
  64. </script>


Т. е. смысл такой чтобы все три скрипта Jquery Ajax реагировали на одну кнопку в форме входа по действию submit, и после этого каждый из них обращался к своему обработчику и выводил результат в указанном в скрипте блоке как примере.
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Февраля, 2013 - 01:24:01
Post Id



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


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


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




Ответ на ваш вопрос: JSON
 
 Top
keilman
Отправлено: 11 Февраля, 2013 - 21:11:36
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Янв. 2013  


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




DeepVarvar пишет:
Ответ на ваш вопрос: JSON


А можно попросить Вас примерчик по этой теме средствами Ajax и JSON? Или другими способами, главное чтобы эффективными.

Выглядеть это должно вот так:

Есть две страницы главная и обработчик.

На главной форма авторизации и три блока:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div id="block1">Форма авторизации</div>
  2. <div id="block2">Список товаров</div>
  3. <div id="block3">Статистика корзины</div>


В обработчике к примеру три сообщения:

PHP:
скопировать код в буфер обмена
  1. echo 'Сообщение для блока №1';
  2. echo 'Сообщение для блока №2';
  3. echo 'Сообщение для блока №3';


И вот при нажатии кнопки "Войти", если юзер найден в базе то одновременно в указанных выше трех блоках выводятся соответствующие им сообщения из файла обработчика без перезагрузки страницы на Ajax.

Я пока научился (вернее подсказали) делать только с одним блоком, таким синтаксисом:

CODE (javascript):
скопировать код в буфер обмена
  1. <script language="javascript" type="text/javascript">
  2. $(document).ready(function()
  3. {
  4.         $("form.forma1").each(function()
  5.         {
  6.                 var $this = $(this);
  7.                 $this.submit(function ()
  8.                 {
  9.                         $.ajax(
  10.                         {
  11.                                 type: "POST",
  12.                                 url: "switch.php?action=test1",
  13.                                 data:
  14.                                 {
  15.                                         par1:$('input.param1',$this).val(),
  16.                                         par2:$('input.param2',$this).val()
  17.                                 },
  18.                                 success: function (html)
  19.                                 {
  20.                                         $("div#resultat1").html(html);
  21.                                 }
  22.                         });
  23.                         return false;
  24.                 });
  25.         });
  26. });
  27. </script>


Прошу подсказать мне на примерах, уверен что Вы знакомы с данной темой и синтаксисом.

(Отредактировано автором: 11 Февраля, 2013 - 21:14:43)

 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Февраля, 2013 - 23:03:44
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $data = array(
  2.   'eni'  => 'Сообщение для блока №1',
  3.   'beni' => 'Сообщение для блока №2',
  4.   'raba' => 'Сообщение для блока №3'
  5. );
  6. echo json_encode($data);

CODE (javascript):
скопировать код в буфер обмена
  1. ...
  2. success: function (response){
  3.  
  4.   // щас тут придут и скажут как на жуйквере
  5.   // запилить из строки JSON, а я не помню
  6.   // поэтому пишу на чистом js
  7.   // но всеравно работает
  8.   response = eval("("+response+")");
  9.  
  10.   $("div#resultat1").html(response.eni);
  11.   $("div#resultat2").html(response.beni);
  12.   $("div#resultat3").html(response.raba);
  13. }
  14. ...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB