Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][AJAX] Pobranie danych i link przeładowuje stronę
grzesiek_g
post
Post #1





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


Witam

Mam prosty błąd. W kodzie z zewnętrznego pliku js:
  1. $().ready(function() {
  2. $("#project-nav a").click(function() {
  3. var project;
  4. $.ajax({
  5. type: "GET",
  6. url: "http://example.com/beta.php",
  7. data: "ajax=1&project_id=+zmienna,
  8. success: function(msg){
  9. $('#project_inner').replaceWith(msg);
  10. }
  11. });
  12. return false;
  13. });
  14. });

Wszystko działa ok, ale do pierwszego wywołania kodu, po poprawnym pobraniu danych i zamianie elementu linki, które się znajdują w uaktualnionym elemencie przestają działać zgodnie z założeniem, tzn. nie jest wywoływana akcja zapytania AJAX tylko strona jest przeładowywana.

Wiem, że tak się dzieje ponieważ powyższy kod odnosi się do stanu po załadowaniu strony tradycyjnym żądaniem, po aktualizacji żądania AJAX-em nie ma zastosowania kod w $().ready - ale jedynie do tego uaktualnionego elementu.

Ale zamieszałem, mam nadzieję, że ktoś zrozumie i podpowie jak to rozpisać by działało - dodawanie atrybutów w stylu onclick do linków raczej odpada.


--------------------
Warsztat: Ubuntu 12.10, PHPStorm
http://vertoo.pl
Go to the top of the page
+Quote Post
lord_t
post
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Podmień swój kod tym:) (pisałem z palca, ale chyba nic nie pokręciłem):
Kod
function aX(ojciecId){

$("#"+ojciecId+" a").click(function() {

var project;

$.ajax({
type: "GET",
url: "http://example.com/beta.php",
data: "ajax=1&project_id=+zmienna,
success: function(msg){
$('#project_inner').replaceWith(msg);
aX('project_inner');
}
});

return false;

});

}

$().ready(function() {
aX('project-nav');
});


--------------------
Go to the top of the page
+Quote Post
sirostr
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 1
Dołączył: 29.01.2008
Skąd: Wielkopolska

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


dopiero zaczynam moją przygodę z ajaksem.
Czy moglibyście mi pokazać jak taki kod działa?

edit: wypociłem takie coś, ale ne działa
  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>pierwszy raz z ajaksem</title>
  7. </head>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript">
  10. function aX(ojciecId){
  11.  
  12. $("#"+ojciecId+" a").click(function() {
  13.  
  14. var project;
  15.  
  16. $.ajax({
  17. type: "GET",
  18. url: "http://drzamich.boo.pl/beta.php",
  19. data: "ajax=1&project_id=+zmienna,
  20. success: function(msg){
  21. $('#project_inner').replaceWith(msg);
  22. aX('project_inner');
  23. }
  24. });
  25.  
  26. return false;
  27.  
  28. });
  29.  
  30. }
  31.  
  32. $().ready(function() {
  33. aX('project_nav');
  34. });
  35. <div id="project_nav"><a href="#">KLIK</a></div>
  36. <div id="project_inner"><a href="#">KLIK</a></div>
  37. <?php
  38. echo $project_id;
  39. ?>
  40. </body>
  41. </html>


Ten post edytował sirostr 25.09.2008, 20:18:37
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 Aktualny czas: 19.08.2025 - 10:13