Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX] Jak dział funkcja assign
gebp
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


Mam

test.php
  1. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  2. <script type="text/javascript" src="advajax.js"></script>
  3. </head>
  4. <body>
  5. <div id="t" style=" background-color:#ffff00;" >
  6. <form actiont=t2.php method=post id="form1">
  7. <input type=text name=l1>
  8. <input type=text name=l2>
  9. <input type=submit value=zapisz>
  10. </form>
  11.  
  12. <script type="text/javascript">
  13.  
  14. advAJAX.assign(document.getElementById("form1"),
  15. onSuccess: function(obj) { document.getElementById("t").innerHTML = "ODP: " + obj.responseText; },
  16. onError: function(obj) { document.getElementById("t").innerHTML = "Error..."; }
  17. )};
  18.  
  19. </div>
  20.  
  21. </body>


t2.php
  1. <?php
  2. header("Content-Type: text/html; charset=iso-8859-2");
  3.  
  4. sleep(4);
  5. $l1=$_POST['l1'];
  6. $l2=$_POST['l2'];
  7. $suma=$l1+$l2;
  8.  
  9. echo("Wynik to".$suma);
  10.  
  11. ?>


Z tego co czytałem o ajaxie tak zbudowany formularz - skrypt powinien zwrócić mi do elementu "t" wynik z skryptu t2.php. Jednakże nic a nic się nie dzieje. Gdzie popełniłem błąd. A może nie rozumiem dziłania assign.
Go to the top of the page
+Quote Post
artur81
post
Post #2





Grupa: Zarejestrowani
Postów: 252
Pomógł: 2
Dołączył: 4.12.2004
Skąd: Skierniewice

Ostrzeżenie: (10%)
X----


  1. form actiont=t2.php

tutaj np masz błąd, poza tym bierz atrybuty w "".
Go to the top of the page
+Quote Post
gebp
post
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


Racja diabelski błąd.
Jeżeli można jeszcze zapytać.

Dlaczego powyższy przykład nie ładuje mi odpowiedzi do div'a. tylko wywala nową stronę
  1. <div id="t" style=" background-color:#ffff00;" >
  2. ....
  3. </div>


Nie bardzo łapie to.
Go to the top of the page
+Quote Post
kriqs
post
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 31.05.2006

Ostrzeżenie: (0%)
-----


  1. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  2. <script type="text/javascript" src="advajax.js"></script>
  3. <script type="text/javascript">
  4.  
  5. function cze()
  6. {
  7. advAJAX.assign( document.getElementById("form1"), {
  8. onSuccess: function(obj) { document.getElementById("t").innerHTML = obj.responseText; },
  9. onError : function(obj) { document.getElementById("t").innerHTML = "Error..."; }
  10. }
  11. )
  12.  
  13.  
  14. }
  15.  
  16.  
  17.  
  18. </head>
  19. <body onload=cze()>
  20. <div id="t" style=" background-color:#ffff00;" >
  21. <form action=t2.php method=post id="form1">
  22. <input type=text name=l1>
  23. <input type=text name=l2>
  24. <input type=submit value=zapisz>
  25. </form>
  26.  
  27. </div>
  28.  
  29. </body>


miales blad w skladni assign (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) az sie dziwie ze mi sie chcialo sprawdzac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) polecam firebuga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gebp
post
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


Dzięki kriqs.

Ale dalej nie rozwiązałem mojego problemu. Ma malutki serwis na ramkach i chcę z tym skończyć. Z różnych powodów. Cały serwis napisany jest w php. Do czego dążże.
Na głównej stronie serwisu (index2.php) mają być 3 divy. Standardowy układ. Góra-> logo, lewo->linki, prawo-> różnie raz tabela z wynikami raz formularz wszystko w zależności od linka którego wybierze user.Wygląda to tak:
  1. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  2. <link rel="stylesheet" href="styl.css" type="text/css" />
  3. <script type="text/javascript" src="funkcje.js"></script>
  4. <script type="text/javascript" src="advajax.js"></script>
  5. </head>
  6. <body onload="load()">
  7. <div id="divg">
  8. LOGO
  9. </div>
  10. <div id="divd">
  11. LINKI
  12. </div>
  13. <div id="con">
  14. różna treść raz tabela raz formularz zależny od linka (np: ten powyższy formularz)
  15. </div>
  16. </body>

I moje sakramentalne pytanie:
Jak zrobić by formularze załadowane do <div id="con"> zwracały swoją "wartość" do tego samego <diva>.
Jak zauważysz na stronie index2.php mam już <body onload="load()"> a funkcja load() to ( w pliku funkcje.js:
  1. function load() {
  2. advAJAX.setDefaultParameters({
  3. onInitialization : function(obj) { document.getElementById(obj.tag).innerHTML = "Preparing..."; },
  4. onLoading : function(obj) { document.getElementById(obj.tag).innerHTML = "Loading..."; },
  5. onSuccess : function(obj) { document.getElementById(obj.tag).innerHTML = obj.responseText; },
  6. onError : function(obj) { document.getElementById(obj.tag).innerHTML = "Error..."; }
  7. });
  8. advAJAX.get({ url: "test1.php", tag:"divg" });
  9. advAJAX.get({ url: "test2.php", tag:"divd" });
  10. advAJAX.get({ url: "t1.html", tag:"con" });
  11. advAJAX.setDefaultParameters({});
  12. }

czy każdy formularz ładowany do <div id="con"> mają mieć taką postać jak podałeś wyżej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Ja osobiście wymyśliłem (odnosząc się analogicznie jak w php) że funkcje będą ładowane z pliku. Jednakże jak tak zrobiłem to d...a zbita. Nie działało wogóle nic. Więc zacząłem powoli sprawdzać i doszedłem do wniosku iż funkcja advAJAX.assign coś nie tak. tyle że w tym momencie naprawde nie wiem jak to rozwiązać. Znam podstawy java script ale nie zabardzo to rozumiem. Powyższy przykład napisze brzydko zerżnąłem z strony Pana Łukasza Lach. Za przykład posłużył mi formularz logowania. Ale u mnie to w ogóle nie działało. tzn. nie formularz tylko to co sam stworzyłem.
Zapytam jeszcze tak. Czy taka forma jest poprawna (chodzi o wykorzystanie do innych formularzy)
  1. function cze(id_formularza, zaladuj_do)
  2. {advAJAX.assign( document.getElementById(id_formularza), {
  3. onSuccess: function(obj) { document.getElementById(zaladuj_do).innerHTML = obj.responseText; },
  4. onError : function(obj) { document.getElementById(zaladuj_do).innerHTML = "Error..."; }
  5. })}

Przepraszam że tak meczę. Jeszcze raz dziękuję.


Po części znam odp. na moje powyższe. Z tego co wyczytałem to funkcja advAJAX.assign nie działa jeżeli formularz jest ładowany za pomocą Ajaxa.
Zna ktoś może rozwiązanie tego problemu.
Może zastosować Xhtml (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? (nie znam go dlatego pytam zanim coś kolejnego będę się uczył )

Ten post edytował gebp 27.01.2007, 19:32:02
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 21:32