Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX] Jak dział funkcja assign
gebp
post 25.01.2007, 22:31:55
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 26.01.2007, 07:19:01
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 26.01.2007, 17:35:33
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 26.01.2007, 18:50:31
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 exclamation.gif az sie dziwie ze mi sie chcialo sprawdzac smile.gif polecam firebuga smile.gif

pozdrawiam smile.gif


--------------------
Pozdrawiam
kriqs

mam nadzieje ze pomoglem :)
Go to the top of the page
+Quote Post
gebp
post 26.01.2007, 20:43:15
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 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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:06