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 :: Jquery Ajax проблема с обновлением информации после выполнения ajax функции

 PHP.SU

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


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

> Описание: Jquery Ajax проблема с обновлением информации после выполнения ajax функции
JokerBarda
Отправлено: 30 Августа, 2012 - 09:38:11
Post Id


Новичок


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


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




Добрый день, есть такая проблема. Необходимо подгружать новые данные через ajax в зависимости от того, на какой день был клик в календаре. Для начала пробовал просто обновить содержимое через ajax запрос. Но после клика на день, страница быстро перегружается, остается висеть календарь, а все остальное пропадает. Вот код:

PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3.   <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5.     <title>Dynarch Calendar -- Special date information</title>
  6.     <script src="/js/jquery-1.6.js"></script>
  7.         <script src="/js/calendar_ru.js" type="text/javascript"></script>
  8.         <script type="text/javascript">
  9.                 $('.date').click(function(){
  10.                         data_veb=$('#vebor').val();
  11.                         alert(data_veb);
  12.                         $.ajax({
  13.                                 type: "GET",
  14.                                 utl: "/poputchik.php",
  15.                                 data: ( {"YeMoDa" : data_veb}),
  16.                                         success: function(html) {
  17.                                                 $('#poputki').empty();
  18.                                                 $('#poputki').append(html);
  19.                                         }                      
  20.                         });
  21.                 });
  22.         </script>
  23.   </head>
  24.   <body>
  25.         <p><big>Кликните на поле ввода даты для вызова календаря:</big><br>
  26. с <input type="text" value="dd-mm-yy" onfocus="this.select();lcs(this)"
  27.         onclick="event.cancelBubble=true;this.select();lcs(this)">
  28. по <input type="text" value="dd-mm-yy" onfocus="this.select();lcs(this)"
  29.         onclick="event.cancelBubble=true;this.select();lcs(this)">
  30. </p>
  31. </br>
  32. <div id="info_block">
  33. <input type="text" id="vebor" value="Сегодня" />
  34. Обновляемая информация
  35. <div id="poputki">
  36.         Тут выводится информация)
  37. </div>
  38. </div>
  39. </body>
  40. </html>
  41.  

Код календаря:
CODE (javascript):
скопировать код в буфер обмена
  1. /* --- Swazz Javascript Calendar ---
  2. /* --- v 1.0 3rd November 2006
  3. By Oliver Bryant
  4. http://calendar.swazz.org
  5.  
  6. Update:
  7. Gene Bechtold
  8. http://www.bechtold.biz
  9. 31/07/2008
  10.  */
  11.  
  12. function getObj(objID)
  13. {
  14.     if (document.getElementById) {return document.getElementById(objID);}
  15.     else if (document.all) {return document.all[objID];}
  16.     else if (document.layers) {return document.layers[objID];}
  17. }
  18.  
  19. function checkClick(e) {
  20.         e?evt=e:evt=event;
  21.         CSE=evt.target?evt.target:evt.srcElement;
  22.         if (getObj('fc'))
  23.                 if (!isChild(CSE,getObj('fc')))
  24.                         getObj('fc').style.display='block';
  25. }
  26.  
  27. function isChild(s,d) {
  28.         while(s) {
  29.                 if (s==d)
  30.                         return true;
  31.                 s=s.parentNode;
  32.         }
  33.         return false;
  34. }
  35.  
  36. function Left(obj)
  37. {
  38.         var curleft = 0;
  39.         if (obj.offsetParent)
  40.         {
  41.                 while (obj.offsetParent)
  42.                 {
  43.                         curleft += obj.offsetLeft
  44.                         obj = obj.offsetParent;
  45.                 }
  46.         }
  47.         else if (obj.x)
  48.                 curleft += obj.x;
  49.         return curleft;
  50. }
  51.  
  52. function Top(obj)
  53. {
  54.         var curtop = 0;
  55.         if (obj.offsetParent)
  56.         {
  57.                 while (obj.offsetParent)
  58.                 {
  59.                         curtop += obj.offsetTop
  60.                         obj = obj.offsetParent;
  61.                 }
  62.         }
  63.         else if (obj.y)
  64.                 curtop += obj.y;
  65.         return curtop;
  66. }
  67.  
  68. // Calendar script
  69. var now = new Date;
  70. var sccd=now.getDate();
  71. var sccm=now.getMonth();
  72. var sccy=now.getFullYear();
  73. var ccm=now.getMonth();
  74. var ccy=now.getFullYear();
  75.          
  76. document.write('<table id="fc" style="position:relative;border-collapse:collapse;background:#FFFFFF;border:1px solid #303030;display:block;width:161px;" cellpadding=2>');
  77. document.write('<tr style="font:bold 13px Arial"><td style="cursor:pointer;font-size:15px" onclick="csubm()">&laquo;</td><td colspan="5" id="mns" align="center"></td><td align="right" style="cursor:pointer;font-size:15px" onclick="caddm()">&raquo;</td></tr>');
  78. document.write('<tr style="background:#FF9900;font:12px Arial;color:#FFFFFF"><td align=center>П</td><td align=center>В</td><td align=center>С</td><td align=center>Ч</td><td align=center>П</td><td align=center>С</td><td align=center>В</td></tr>');
  79. for(var kk=1;kk<=6;kk++) {
  80.         document.write('<tr>');
  81.         for(var tt=1;tt<=7;tt++) {
  82.                 num=7 * (kk-1) - (-tt);
  83.                 document.write('<td class="date" id="v' + num + '" style="width:18px;height:18px">&nbsp;</td>');
  84.         }
  85.         document.write('</tr>');
  86. }
  87. document.write('<tr><td colspan="7" align="center" style="cursor:pointer;font:13px Arial;background:#FFC266" onclick="today()">Сегодня: '+addnull(sccd,sccm+1,sccy)+'</td></tr>');
  88. document.write('</table>');
  89.  
  90. document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);
  91.  
  92.  
  93.  
  94.  
  95. var updobj;
  96. function lcs(ielem) {
  97.         updobj=ielem;
  98.         getObj('fc').style.left=Left(ielem);
  99.         getObj('fc').style.top=Top(ielem)+ielem.offsetHeight;
  100.         getObj('fc').style.display='';
  101.        
  102.         // First check date is valid
  103.         curdt=ielem.value;
  104.         curdtarr=curdt.split('-');
  105.         isdt=true;
  106.         for(var k=0;k<curdtarr.length;k++) {
  107.                 if (isNaN(curdtarr[k]))
  108.                         isdt=false;
  109.         }
  110.         if (isdt&(curdtarr.length==3)) {
  111.                 ccm=curdtarr[1]-1;
  112.                 ccy=curdtarr[2];
  113.                 prepcalendar(curdtarr[0],curdtarr[1]-1,curdtarr[2]);
  114.         }
  115.        
  116. }
  117.  
  118. function evtTgt(e)
  119. {
  120.         var el;
  121.         if(e.target)el=e.target;
  122.         else if(e.srcElement)el=e.srcElement;
  123.         if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
  124.         return el;
  125. }
  126. function EvtObj(e){if(!e)e=window.event;return e;}
  127. function cs_over(e) {
  128.         evtTgt(EvtObj(e)).style.background='#FFEBCC';
  129. }
  130. function cs_out(e) {
  131.         evtTgt(EvtObj(e)).style.background='#FFFFFF';
  132. }
  133. function cs_click(e) {
  134.         data=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
  135.         $("#vebor").val(data);
  136. }
  137.  
  138. var mn=new Array('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентрябрь','Октябрь','Ноябрь','Декабрь');
  139. var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
  140. var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
  141. var calvalarr=new Array(42);
  142.  
  143. function f_cps(obj) {
  144.         obj.style.background='#FFFFFF';
  145.         obj.style.font='10px Arial';
  146.         obj.style.color='#333333';
  147.         obj.style.textAlign='center';
  148.         obj.style.textDecoration='none';
  149.         obj.style.border='1px solid #606060';
  150.         obj.style.cursor='pointer';
  151. }
  152.  
  153. function f_cpps(obj) {
  154.         obj.style.background='#C4D3EA';
  155.         obj.style.font='10px Arial';
  156.         obj.style.color='#FF9900';
  157.         obj.style.textAlign='center';
  158.         obj.style.textDecoration='line-through';
  159.         obj.style.border='1px solid #6487AE';
  160.         obj.style.cursor='default';
  161. }
  162.  
  163. function f_hds(obj) {
  164.         obj.style.background='#FFF799';
  165.         obj.style.font='bold 10px Arial';
  166.         obj.style.color='#333333';
  167.         obj.style.textAlign='center';
  168.         obj.style.border='1px solid #6487AE';
  169.         obj.style.cursor='pointer';
  170. }
  171.  
  172. // day selected
  173. function prepcalendar ( hd, cm, cy )
  174. {
  175.         now=new Date();
  176.         sd=now.getDate();
  177.         td=new Date();
  178.         td.setDate(1);
  179.         td.setFullYear(cy);
  180.         td.setMonth(cm);
  181.         cd=td.getDay();
  182.         if (cd==0)cd=6; else cd--;
  183.        
  184.         getObj('mns').innerHTML=mn[cm]+ ' ' + cy;
  185.        
  186.         marr=((cy%4)==0)?mnl:mnn;
  187.        
  188.         for(var d=1;d<=42;d++)
  189.         {
  190.                 f_cps ( getObj ( 'v' + parseInt ( d ) ) );
  191.                 if ( ( d >= (cd -(-1) ) ) && ( d<=cd-(-marr[cm]) ) )
  192.                 {
  193.                         getObj('v'+parseInt(d)).onmouseover=cs_over;
  194.                         getObj('v'+parseInt(d)).onmouseout=cs_out;
  195.                         getObj('v'+parseInt(d)).onclick=cs_click;
  196.                        
  197.                         // if today
  198.                         if (sccm == cm && sccd == (d-cd) && sccy == cy)
  199.                                 getObj('v'+parseInt(d)).style.color='#FF9900';
  200.  
  201.                         getObj('v'+parseInt(d)).innerHTML=d-cd;
  202.                                
  203.                         calvalarr[d]=addnull(d-cd,cm-(-1),cy);
  204.                 }
  205.                 else
  206.                 {
  207.                         getObj('v'+d).innerHTML='&nbsp;';
  208.                         getObj('v'+parseInt(d)).onmouseover=null;
  209.                         getObj('v'+parseInt(d)).onmouseout=null;
  210.                         getObj('v'+parseInt(d)).onclick=null;
  211.                         getObj('v'+parseInt(d)).style.cursor='default';
  212.                 }
  213.         }
  214. }
  215.  
  216. prepcalendar('',ccm,ccy);
  217.  
  218. function caddm() {
  219.         marr=((ccy%4)==0)?mnl:mnn;
  220.        
  221.         ccm+=1;
  222.         if (ccm>=12) {
  223.                 ccm=0;
  224.                 ccy++;
  225.         }
  226.         prepcalendar('',ccm,ccy);
  227. }
  228.  
  229. function csubm() {
  230.         marr=((ccy%4)==0)?mnl:mnn;
  231.  
  232.         ccm-=1;
  233.         if (ccm<0) {
  234.                 ccm=11;
  235.                 ccy--;
  236.         }
  237.         prepcalendar('',ccm,ccy);
  238. }
  239.  
  240. function today() {
  241.         updobj.value=addnull(now.getDate(),now.getMonth()+1,now.getFullYear());
  242.         prepcalendar('',sccm,sccy);
  243. }
  244.  
  245. function addnull(d,m,y)
  246. {
  247.         var d0='',m0='';
  248.         if (d<10)d0='0';
  249.         if (m<10)m0='0';
  250.        
  251.         return ''+d0+d+'-'+m0+m+'-'+y;
  252. }



код php функции poputchik.php:
PHP:
скопировать код в буфер обмена
  1. <?
  2.         $YeMoDa=$_GET['YeMoDa'];
  3.         return $YeMoDa;?>


Уже почти неделю бьюсь с этой фигней, думал проблема в календаре, взял другой календарь, проблема осталась та же.
Кстати, после того как выбрал день календаря в адресной строке появляется
wyciwyg://61/http://calendar[dot]ru/
 
 Top
Zuldek
Отправлено: 30 Августа, 2012 - 09:45:49
Post Id


Постоянный участник


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


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




А вы не смотрите в адресные строки а включайте Firebug и смотрите ajax-запросы и ответы сервера в консоли и сразу будет ясно где ошибка.
 
 Top
JokerBarda
Отправлено: 30 Августа, 2012 - 09:50:43
Post Id


Новичок


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


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




Там все быстро проходит, ничего не увидеть. Просто при клике страница перезагружается и все. Как в ней поэтапно выполнять?
 
 Top
Zuldek
Отправлено: 30 Августа, 2012 - 10:03:38
Post Id


Постоянный участник


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


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




Не знаю, что там у вас быстро проходит, но, чтобы было понятнее, я говорил вам вот об этом:

(Отредактировано автором: 30 Августа, 2012 - 10:04:10)

 
 Top
IllusionMH
Отправлено: 30 Августа, 2012 - 10:04:21
Post Id



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


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


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




JokerBarda, ставить точку остановки (breakpoint, если не ошибаюсь, просто клик на номере строки) и пошагово строка за строкой проходить скрипт.

(Отредактировано автором: 30 Августа, 2012 - 10:07:58)

 
 Top
JokerBarda
Отправлено: 30 Августа, 2012 - 10:21:13
Post Id


Новичок


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


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




вот загрузил на поддомен http://gudvill.adione.ru. В отладке никаких ошибок не увидел.
(Добавление)
Никто не знает в чем причина? Ну может тогда вы подскажите альтернативный вариант? Нужно реализовать что то на подобие ежедневника, при клике на дате, должны отображаться задачи на этот день (берутся с БД), а также возможность добавить задачу на этот день.
 
 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