Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] ajax użycie load() po wykonaniu żądania Ajax
Forum PHP.pl > Forum > XML, AJAX
adas007
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.
erix
A nie możesz wywołać load jako callback w $.ajax? Bez kodu niewiele mogę powiedzieć...
adas007
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 ?
erix
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.
adas007
Wielkie pidziękowania problem rozwiązany
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.