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 в нужный id

 PHP.SU

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


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

> Без описания
Yuriy
Отправлено: 23 Июня, 2007 - 12:36:24
Post Id



Частый гость


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


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




Есть несколько объектов. Пусть это будут кнопки. Каждая имеет свой id по шаблону div_x. Нажимаю на одну из кнопок, отсылается запрос на сервер и ответ на запрос должен заменить кнопку, которую мы нажали. Что не получается. id нажатой кнопки я передать могу в функцию AJAX. Но ведь отслеживание того, что запрос выполнен, виден в функции:

PHP:
скопировать код в буфер обмена
  1. function processReqChange_9()
  2.     {
  3.     if(req9.readyState==4 && req9.status==200)
  4.     {
  5.              document.getElementById('div_x').innerHTML = req9.responseText;
  6.     }
  7.   }


а как мне в этой функции узнать id кнопки? То есть, мне надо передать как-то между функциями значение переменной. Несколько туманно объяснил… Вот пример:

PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.  
  5. <script language="JavaScript">
  6.  
  7.     function processReqChange_9()
  8.     {
  9.     if(req9.readyState==4 && req9.status==200)
  10.     {
  11.              document.getElementById('div_'+arg2).innerHTML = req9.responseText;
  12.     }
  13.   }
  14.   function multi_call8(arg1,arg2)
  15.   {
  16.     alert(arg2);
  17.     if(window.XMLHttpRequest)
  18.     {
  19.       req9 = new XMLHttpRequest();
  20.       req9.onreadystatechange = processReqChange_9;
  21.       req9.open("GET",arg1, true);
  22.       req9.send(null);
  23.     } else if (window.ActiveXObject)
  24.     {
  25.       req9 = new ActiveXObject("Microsoft.XMLHTTP");
  26.       if (req9)
  27.       {
  28.         req9.onreadystatechange = processReqChange_9;
  29.         req9.open("GET",arg1, true);
  30.         req9.send();
  31.       }
  32.     }
  33.   }
  34.  
  35. </script>
  36. </head>
  37.  
  38. <body>
  39.  
  40. <input type="button" id="div_1" value="Button 1" onClick="multi_call8('edit.php?a=1','1');">
  41. <br/>
  42. <input type="button" id="div_2" value="Button 2" onClick="multi_call8('edit.php?a=2','2');">
  43.  
  44. </body>
  45. </html>
  46.  


Мне нужно, чтобы по нажатии на одну из кнопок изменилось её содержимое, согласно ответу на запрос. Как видно, id (точнее его часть) я отсылаю вторым параметром и в функции multi_call8 его получаю. А вот как бы его передать теперь в processReqChange_9?


-----
Yuriy
 
 Top
UserID
Отправлено: 23 Июня, 2007 - 20:18:25
Post Id



Магистр JavaScript


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


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




Извини, а что ты хочешь в кнопке поменять свойством innerHTML?
 
 Top
valenok
Отправлено: 23 Июня, 2007 - 21:28:57
Post Id



Здесь могла бы быть ваша реклама


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


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




можно передать на сервер и получить от сервера id кнопки
можно передавать в конечную функцию id своей кнопки
можно сохранить в переменную id кнопки а потом в конце читать эту перемнную
можно подумать или воспользоваться фантазией
можно ..


-----
Truly yours, Sasha.
 
My status
 Top
Yuriy
Отправлено: 23 Июня, 2007 - 21:46:41
Post Id



Частый гость


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


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




valenok пишет:
можно передать на сервер и получить от сервера id кнопки


Можно с примером?

valenok пишет:
можно передавать в конечную функцию id своей кнопки


Я не просто так этот топик создал. Попробуйте! IE пишет: несоотвествие типов.

valenok пишет:
можно сохранить в переменную id кнопки а потом в конце читать эту перемнную


В каком конце?

valenok пишет:
можно подумать или воспользоваться фантазией
можно ..


Можно просто показать пример. Вы же знаток в этом деле. Что вам это стоит?

(Добавление)
UserID пишет:
Извини, а что ты хочешь в кнопке поменять свойством innerHTML?


Согласен. Просто не подумал.


-----
Yuriy
 
 Top
UserID
Отправлено: 23 Июня, 2007 - 22:07:28
Post Id



Магистр JavaScript


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.  
  5. < script language="JavaScript">
  6. var active_id;
  7. function getID(ident)
  8. {
  9.     active_id = ident;
  10.     return active_id;
  11. }
  12.  
  13.     function processReqChange_9()
  14.     {
  15.     if(req9.readyState==4 && req9.status==200)
  16.     {
  17.             if(active_id == "div_1") {
  18.                       document.getElementById('div_'+arg2).innerHTML = req9.responseText;
  19.                 }
  20.     }
  21.   }
  22.   function multi_call8(arg1,arg2)
  23.   {
  24.     alert(arg2);
  25.     if(window.XMLHttpRequest)
  26.     {
  27.       req9 = new XMLHttpRequest();
  28.       req9.onreadystatechange = processReqChange_9;
  29.       req9.open("GET",arg1, true);
  30.       req9.send(null);
  31.     } else if (window.ActiveXObject)
  32.     {
  33.       req9 = new ActiveXObject("Microsoft.XMLHTTP");
  34.       if (req9)
  35.       {
  36.         req9.onreadystatechange = processReqChange_9;
  37.         req9.open("GET",arg1, true);
  38.         req9.send();
  39.       }
  40.     }
  41.   }
  42.  
  43. </script>
  44. </head>
  45.  
  46. <body>
  47.  
  48. <input type="button" id="div_1" value="Button 1" onClick="getID(this.id); multi_call8('edit.php?a=1','1');">
  49. <br/>
  50. <input type="button" id="div_2" value="Button 2" onClick="getID(this.id); multi_call8('edit.php?a=2','2');">
  51.  
  52. </body>
  53. </html>
  54.  


Писал на вскидку. Работает или нет, не знаю. Вроде должно. Пробуй.
 
 Top
Yuriy
Отправлено: 23 Июня, 2007 - 22:17:07
Post Id



Частый гость


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


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




UserID, вот спасибо вам! Действительно, Магистр... ;)


-----
Yuriy
 
 Top
valenok
Отправлено: 23 Июня, 2007 - 22:42:24
Post Id



Здесь могла бы быть ваша реклама


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP  
  3.  
  4. if(isset($_GET['a'])) {
  5.         if(isset($_GET['div_id'])) echo $_GET['div_id']."|separator|";
  6.         die("Your var: ".$_GET['a']);
  7. }
  8.  
  9.  
  10.  
  11.  
  12. ?>
  13.  
  14.  
  15.  
  16. <div id='div_1' onClick="javascript:multi_call8('<?PHP echo $_SERVER['PHP_SELF'];?>?a=1&div_id='+this.id);">
  17. можно передать на сервер и получить от сервера id кнопки</div>
  18.  
  19.  
  20. <div id='div_3' onClick="javascript: someid = this.id; multi_call8('<?PHP echo $_SERVER['PHP_SELF'];?>?a=1'); ">
  21. можно сохранить в переменную id кнопки а потом в конце читать эту перемнную</div>
  22.  
  23. <div id='div_4' onClick="javascript:alert('Запомните это: '+this.id);multi_call8('a.php?a=1');">
  24. можно подумать или воспользоваться фантазией</div>
  25.  
  26. <div id='div_5' onClick="javascript:window.close()">
  27. можно .. </div>
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. <script language="JavaScript">
  36.  
  37. var someid;
  38.  
  39.      function processReqChange_9()  {
  40.            if(req9.readyState==4 && req9.status==200)  {
  41.                                        
  42.                                 if(req9.responseText.indexOf('|separator|')>0)
  43.                                                 var ret = req9.responseText.split('|separator|');
  44.                                         else { var ret = new Array(); ret[0] = someid;  ret[1] = req9.responseText;}
  45.                                         if(!ret[0]) ret[0] = prompt('Теперь введите то что вы запомнили','');
  46.                                         document.getElementById(ret[0]).innerHTML = ret[1];
  47.                                
  48.                          }
  49.      
  50.          }
  51.  
  52.  
  53.  
  54.    function multi_call8(arg1)  
  55.    {
  56.                        
  57.                          if(window.XMLHttpRequest)  
  58.                         {
  59.                                 req9 = new XMLHttpRequest();
  60.                                  req9.onreadystatechange = processReqChange_9;
  61.                                 req9.open("GET",arg1, true);
  62.                                 req9.send(null);
  63.                         }
  64.                         else if (window.ActiveXObject)  
  65.                         {
  66.                                 req9 = new ActiveXObject("Microsoft.XMLHTTP");
  67.                                 if (req9)  
  68.                                 {
  69.                                         req9.onreadystatechange = processReqChange_9;
  70.                                         req9.open("GET",arg1, true);
  71.                                         req9.send();
  72.                                 }
  73.                         }
  74.  
  75.  
  76.    }
  77.    
  78.  
  79.  
  80.  
  81.  </script>
  82.  </head>
  83.  
  84.  <body>
  85.  
  86.  <input type="button" id="btn" value="Button 1" onClick="multi_call8('<?PHP echo $_SERVER['PHP_SELF'];?>.php?a=1&div_id=1','1');">
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95. <?
  96.  
  97.  
  98.  
  99.  
  100. ?>
  101.  
  102.  
  103.  
  104.  
  105.  


-----
Truly yours, Sasha.
 
My status
 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