Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [advAJAX]Zwykły get
Forum PHP.pl > Forum > XML, AJAX > AJAX
sajborg
Noo ja nie wiem co jest zwykły prosty banalny kod a mi nie działa kompletnie nic sie nie pokazuje sad.gif

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  3. <title>Reklama</title>
  4. <script language="JavaScript" type="text/javascript" src="advajax.js"></script>
  5. </head>
  6. <body bgcolor="#00AFAF">
  7.  
  8. <script language="JavaScript" type="text/javascript" >
  9. <!--
  10. advAJAX.get({
  11. url: "http://paweb.info/program/show.php?userid=1&type=5",
  12. onSuccess : function(obj) { document.getElementById('baner').innerHTML=obj.responseText;}
  13. onError : function(obj) { alert("Error: " + obj.status); }
  14. });
  15. //-->
  16.  
  17. <div id="baner"></div>
  18.  
  19.  
  20. </body>
  21. </html>


Ze zwykłym alertem w Success tez nei jakby w ogole nie działał advAJAX jak sprawdzic czy on w ogole działa mi
artur81
z tego co widzę to w linii
  1. onSuccess : function(obj) { document.getElementById('baner').innerHTML=obj.responseText;}

powinien byc przecinek na końcu, a poza tym może pokaż też kod php, zobaczymy co tam zwracasz...
Jak patrzę na Twój kod to poza tym przecinkiem powinien działać. A konsola JS jakie błędy pokazuje?
sajborg
Ten przecinek nic nie daje a kod php jest taki... jesli wejde w ten plik sam to działa

  1. <?
  2. include 'include/index.start.inc';
  3. include_once('include/txt_templates.inc');
  4.  
  5. $id=$db->one_result('page',"partner_id='".$_GET['userid']."'",'id');
  6.  
  7. if (!empty($id)) {
  8.  
  9.  
  10. $body=explode('|',$db->one_result('page',"partner_id='".$_GET['userid']."'",'body'));
  11. if ($typ==0){
  12.  
  13. $temp=$rodzaj[$_GET['type']];
  14. $temp=explode('|',$temp);
  15. $count=$temp[0];
  16. $output=$temp[1];
  17.  
  18. $title=array();
  19. $first=array();
  20. $sec=array();
  21. $url=array();
  22. $adress=array();
  23.  
  24.  
  25. $sql="SELECT * FROM `banner` WHERE type='0' ORDER BY RAND(NOW()) LIMIT ".$count."";
  26. $result=mysql_query($sql) or Die($lang['error_sql'].mysql_error().'<br>'.$sql);
  27.  
  28. while ($dane=mysql_fetch_array($result)){
  29. $title[]=$dane['title'];
  30. $first[]=$dane['line1'];
  31. $sec[]=$dane['line2'];
  32. $url[]=$dane['url'];
  33. $adress[]=$dane['adress'];
  34.  
  35. $base=array(
  36. 'values'=>  '`banner_id`, `type`, `years`, `months`, `day`, `IP`',
  37. 'contents'=> "'".$dane['id']."','0','".date("y")."','".date("m")."','".date("d")."','".GetClientIP()."'"
  38. );
  39.  
  40. $db->add('stat',$base);
  41.  
  42. }
  43. $colorid=array('{0}','{1}','{2}','{3}','{4}','{5}');
  44. $color_r=array($body['0'],$body['1'],$body['2'],$body['3'],$body['4'],$body['5']);
  45. $txtid=array('/title/','/first/','/sec/','/url/','/adress/');
  46. $result='';
  47.  
  48. $result=str_replace($colorid,$color_r,$output);
  49. for ($i=0;$i<$count;$i++){
  50.  
  51. $txt_r=array($title[$i],$first[$i],$sec[$i],$url[$i],$adress[$i]);
  52. $result=preg_replace($txtid,$txt_r,$result,1);
  53.  
  54. }
  55.  
  56. echo $result;
  57.  
  58. }elseif($typ==1){
  59.  
  60.  
  61.  
  62. }
  63.  
  64. }
  65.  
  66. ?>
bim2
Przenies:
  1. <script language="JavaScript" type="text/javascript" >
  2. <!--
  3. advAJAX.get({
  4. url: "http://paweb.info/program/show.php?userid=1&type=5",
  5. onSuccess : function(obj) { document.getElementById('baner').innerHTML=obj.responseText;}
  6. onError : function(obj) { alert("Error: " + obj.status); }
  7. });
  8. //-->
Nad <head> winksmiley.jpg
sajborg
Nic to nie daje probowalem na rozne sposoby biggrin.gif Moze poprostu nie działą advAJAX na tym serwie questionmark.gif Ale chyba nie ma takiej mozliwosci
NetJaro
W znaczniku body daj onload="funkcja_ajax()" a funkcja_ajax niech zawiera advAJAX.get
sajborg
Wsztko działa jesli plik php jest tam gdzie plik html czyli sciezka jest od razu
  1. url: "show.php?userid=1&type=5",
  2. ....


ale ja musze miec sciezke bezwzględną czyli : http://paweb.info/program/show.php?userid=1&type=5
NetJaro
To sprawdź czy tak działa podawając ścieżkę taką jak Ty chcesz ;-)
sajborg
Jakby mi działało to bym chyba powiedział nie dział mi własnie z pełna scieżka exclamation.gif
UNK
a czy czasem advAjax nie jest zabezpieczony przed podawaniem bezwzględnej ścieżki do skryptu ?
Gdzieś to było pisane już na forum, sprawdziłem i również u mnie jest tak samo (z moim skryptem, który nie ma prawa nie działać).
Przy podaniu mu ścieżki actions.php?w=clock działa bez problemu a przy odpaleniu tego na moim serwerze domowym i podaniu ścieżki http://{addrip}/i-boa/actions.php?w=clock nie działa.

Jeśli potrzebne Ci coś z innej strony po prostu zrób takie coś. Otwórz plik przez fopen() bądź pobierz jego zawartość file_get_contents(), ewentualnie wytnij to co Ci nie jest potrzebne i ten skrypt wykonuj ajaxem tongue.gif innego rozwiązania nie widze.
Cysiaczek
Specem nie jestem, ale u mnie to działa (z moimi skryptami). Wnioskuje stąd, że błąd leży po stronie skryptu, do którego się odwołujesz. Możesz go pokazać?
sajborg
Czytaj dokładnie posty bo skrypt działa i ajax tez działa jesli sciezka jest show.php........ a jesli http://xx.xx.x/show.php to ajax nie łapie
Cysiaczek
Tak. Czytam dokładnie. Też używam advAjax i jakoś dokłądnie taka sama konstrukcja mi działa, co oznacza, że dane, które próbujesz przesłac ze skryptu do ajax'a maja jakąś wadę - może jak przedstawisz skrypt, to znajdziemy błąd.

Pozdrawiam.
sajborg
Ok nie ma problemu ale zobacz skoro skrypt działa jesli go wywołam samemu a wywyołany przez ajaxanie działa w dodadku działa w ajaxie JEŻELI JEST SCIEŻKA BEZWZGLĘDNA exclamation.gif Nie działą tylko ścieżwa WZGLĘDNA czyli http://xx.xx.x/dasda itd
Cysiaczek
Mam takie-sobie info.
To nie jest bug advAjax - to wina serwera.
Testowaem swoje wypociny i np. na netstrefa nie działa z http:// - trzeba podac sama nazwę pliku. Z kolei na host.sk działa bez problemu.

Jeszcze zobeczę, co może byc konkretnie przyczyną.
sajborg
A moze jakos inaczej to zrobic cos innego niz advAJAX questionmark.gif
bim2
Człowieku ty słuchasz? To nie wina advAjax a serwera tiredsmiley.gif
gizmo1982
Chyba domyślam się w czym tkwi problem....
Gdzieś wyczytałem (szkoda, że nie zapisałem sobie gdzie), że nie wolno komunikować się poprzez AJAX z plikami z innej domeny niż ta, na której wykonuje się skrypt... innymi słowy - wolno użyć bezwzględnej ścieżki ale tylko w obrębie swojej domeny...
Chyba jedynym sensownym rozwiązaniem byłoby pobranie pliku przez file() lub file_get_contents() i pchnąć przez AJAX...

EDIT:
Znalazłem dokładne wyjaśnienie problemu... znajduje się w dokumentacji Prototype.js http://blog.elksoft.pl/wp-content/prototype.js.pl.html
Oto interesujący fragment który jak sądzę tyczy się ogólnie całego AJAX'a a nie tylko wspomnianego frameworka prototype:

Cytat
Uwaga: warto pamiętać, że wybrany url podlega ustawieniom bezpieczeństwa przeglądarki. W wielu sytuacjach przeglądarka nie pozwoli na użycie adresu, jeśli wskazuje na inny serwer (domenę) niż ta, z której pobrana została bieżąca strona. Trzymanie się takich adresów pozwala uniknąć zmian w konfiguracji przeglądarki. (Dzięki, Clay).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.