Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] ajax użycie load() po wykonaniu żądania Ajax
adas007
post 21.03.2009, 18:02:46
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 9.03.2007

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


Witam,
chciałbym poradzić się Was jak możnaby wykonać taką rzecz:

1)Zachodzi zdarzenie click w pliku index.php, następuje użycie funkcji $.ajax(), która wysyła do skryptu test.php metodą Post zmienne potrzebne do pobrania z bazy pewnych danych i utworzenia z nich elementu div np:
echo "<div id='zBazy'>".$fromDB."<div">
2)Teraz funkcją load() wywołąną w index.php chcę odczytać utworzony dynamicznie w skrypcie test.php element <div id='zBazy'>".$fromDB."<div">

Ok, problemem jest to żeby jakoś wymusić to żeby funkcja load() pobrała element <div id='zBazy'> po tym jak zostanie on już wypełniony zmienną $fromDB , do której przypisany jest wynik zapytania z bazy danych.
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 18:44:45
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A nie możesz wywołać load jako callback w $.ajax? Bez kodu niewiele mogę powiedzieć...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adas007
post 21.03.2009, 21:35:48
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 9.03.2007

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


Załączam kluczowe kawałki kodu:

index.php :

  1. <?php
  2. $('#RdfsNames li ').live("click",function()
  3. {
  4.  
  5.  
  6. var cName = $(this).text();
  7.  
  8. $.ajax(
  9.    {
  10.        type:'Post',
  11.        url:'sqlRdfsValue.php',
  12.        data:'cName='+cName,
  13.        succes: function(){
  14.         $('#rv').load("sqlRdfsValue.php #schVal");
  15.        
  16.         }
  17.    
  18.    }
  19.    
  20.    );
  21. }
  22. );
  23. ?>


sqlRdfsValue.php:

  1. <?php
  2. $cName=$_POST['cName'];
  3.  
  4. try {
  5.    $dbh = new PDO("mysql:host=$hostname;dbname=rdf", $username, $password);
  6.  
  7.    
  8.    
  9.    
  10.    $schematy=$dbh->query("Select rdfs_value from rdfs where rdfs_name='$cName'");
  11.    foreach ($schematy as $row)
  12.    {
  13.        
  14.        $sch= htmlspecialchars($row['rdfs_value']);
  15.    }
  16.    $dbh = null;
  17.    
  18.    echo "<div id='schVal'>".$sch."</div>";
  19.    
  20.    
  21.    }
  22. catch(PDOException $e)
  23.    {
  24.    echo $e->getMessage();
  25.    }
  26. ?>


Bardzo możliwe, że coś źle zrozumiałem , ale funkcja zdefiniowana jako succes: to chyba powinna wykonać się jako callback o którym pisałeś. Jednak wygląda jakby wogóle się nie wywoływała czegoś chyba tam brakuje? Czy wogóle to ma szansę zadziałać tak jak sobie życzę czyli tak, że po wysłaniu zmiennej cName do skryptu sqlRdfsValue.php ,wykonaniu zapytania sql, zapisaniu wyniku do zmiennej, wyświetleniu w echo diva, funkcja zdefiniowana jako succes odczyta zawartość tego diva już po jego wypełnieniu przez odpowiedni wiersz z bazy danych ?
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 21:42:59
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
ale funkcja zdefiniowana jako succes: to chyba powinna wykonać się jako callback o którym pisałeś

Owszem, ale:
Kod
sqlRdfsValue.php #schVal

To nie jest ścieżka do skryptu, wywali 404.

Kod
succes: function(){
        $('#rv').load("sqlRdfsValue.php #schVal");

success, a nie succes, to raz. Dwa - jeśli chcesz skorzystać z tych danych, to robisz:
Kod
succes: function(data){
    //data, to zawartość, którą zwrócił serwer
}

I chyba wiesz, co dalej robić. winksmiley.jpg A load służy do wczytania AJAX-em danych przez GET, a nie do wstawienia danych do warstwy. Do tego służy metoda html.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
adas007
post 21.03.2009, 22:11:47
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 9.03.2007

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


Wielkie pidziękowania problem rozwiązany
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: 27.06.2025 - 18:34