Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ajax / mysql działanie
Forum PHP.pl > Forum > XML, AJAX
!*!
Czy jest wogóle możliwość wczytania przez ajax danych z bazy mysql?

działa to mniej wiecej tak: klikam na link, dzieki ajaxowi wczytuje sie on w odpowiednim divie, div ten includuje odpowiedni plik php w którym są zapytania do bazy... jakbym zrobił to przez $GET bez ajaxa to by działało normalnie... ale strona sklada sie z ok 20 podzielonych okien i przeladowanie za kazdym razem wszytkiego mija sie z celem... więc chcialem to oprzec na ajaxie jednak nie wczytuje danych z bazy... ;/ ktoś ma jakiś pomysł?
yaro
Poczytaj troszke o AJAXie smile.gif
Ale to mniej więcej wygląda tak:
klikasz na link->jakaś tam funkcja w JavaScript zostaje wywołana->ustalasz w tej funkcji odpowiednie parametry które chcesz żeby przesłały się na serwer->skrypt w PHP odbiera przesłane nagłówki (GET, POST)->łączy się z bazą MySQL i pobiera dane-> jakoś je formatuje->następnie zostaje wszystko zwrócone do usera->skrypt w JS przetwarza dane (wsada do diva)->koniec.

w skrócie (i w wielkim uproszczeniu):
JavaScript ->PHP->MySQL->PHP->JavaScript

Mniej więcej tak wygląda komunikacja. Musisz być świadomy jak ona przebiega, inaczej nie napiszesz tego.

A cha, i nie JavaScript nie potrafi includować, tak jak to napisałeś wyżej.
!*!
tak mniej więcej wiem o co Ci chodzi... ale pokombinować jeszcze troche z tym musze...

narazie np. mam coś takiego, plik index.php z formularzem do logowania, po zalogowaniu jestem przenoszony na strone z advAjaxem która includuje w odpowiednim div'ie,

w nim mam połaczenie z js i link ktory prowadzi do test.php, po kliknieciu wszystko działa...

  1. <?php
  2. <script type="text/javascript" src="advajax.js"></script>
  3. <script type="text/javascript">
  4.  
  5. function pobieraj() {
  6. advAJAX.setDefaultParameters({
  7. onInitialization : function(obj) { document.getElementById(obj.tag).innerHTML = "Preparing..."; },
  8. onLoading : function(obj) { document.getElementById(obj.tag).innerHTML = "<img src="loading.gif" />"; },
  9. onSuccess : function(obj) { document.getElementById(obj.tag).innerHTML = "" + obj.responseText; },
  10. onError : function(obj) { document.getElementById(obj.tag).innerHTML = "Błąd 404"; }
  11. });
  12. advAJAX.get({ url: "test.php", tag: "someDiv" });
  13. advAJAX.setDefaultParameters({});
  14. }
  15.  
  16. </script>
  17. ?>


  1. <a onClick="pobieraj()">Ustawienia</a>
  2.  
  3. <div style="background: #ECECEC; padding:10px" id="someDiv"></div>


tylko nadal zabardzo nie wiem jaka funkcja odpowiada za połaczenie z baza... albo niepotrafie tego zrozumieć... skoro wszytko sie wczytuje tak jak nalezy... to jak zmusic jescze JS to odczytu z mysql'a?
kossa
JavaScriptu nie "zmusisz" do odczytu danych z bazy mysql, za jego pomocą wywołujesz plik php w którym musiz obsłużyć połączenie z bazą, wykonać zapytania, przygotować dane i zwrócić je do JavaScriptu aby osadził je w odpowiednim divie.

Łukasz
!*!
Cytat
zwrócić je do JavaScriptu aby osadził je w odpowiednim divie


hm ok, to jak do zrobic majac na podstawie to co podałem wyżej? Wyświetlić to co zwróciła baza do pliku aby przemaglowalo to JS do wyświetlenia...

narazie opanowałem tylko etap JS > plik > baza > plik i tyle... a jak ma być jeszcze na końcu js?
yaro
w pliku php musisz dać echo i tam dane.
w js odbierasz to masz responseText
najlepiej jak skorzystasz z jakiejś biblioteki np. advAjax albo Prototype do nich jest chyba najwięcej pomocy
!*!
to mam coś takiego:

omnie.php, który wyświetla dane:

  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript">
  3.  
  4. function pobieraj() {
  5. advAJAX.setDefaultParameters({
  6. onInitialization : function(obj) { document.getElementById(obj.tag).innerHTML = "Preparing..."; },
  7. onLoading : function(obj) { document.getElementById(obj.tag).innerHTML = "<img src="loading.gif" />"; },
  8. onSuccess : function(obj) { document.getElementById(obj.tag).innerHTML = "" + obj.responseText; },
  9. onError : function(obj) { document.getElementById(obj.tag).innerHTML = "Błąd 404"; }
  10. });
  11. advAJAX.get({ url: "test.php", tag: "someDiv" });
  12. advAJAX.setDefaultParameters({});
  13. }
  14.  
  15. </script>
  16.  
  17. <?php include 'ttt.php'; ?>
  18.  
  19. <?php include 'test.php'; ?>


ttt.php, który zawiera link z div'em do wyswietlenia zawartosci:

  1. <a onClick="pobieraj()">Ustawienia</a>
  2.  
  3. <div style="background: #ECECEC; padding:10px" id="someDiv"></div>


test.php, który łaczy sie z bazą i pobiera z niej dane...

  1. <?php 
  2.  
  3. //wczytanie pliku z funkcjami 
  4. require_once ("funkcje.php"); 
  5.  
  6. // podłączamy plik connection.php 
  7. require "connection.php"; 
  8. // wywołujemy funkcję connection() 
  9. connection(); 
  10.  
  11.  $user = $login; 
  12.  //rejestrowanie danych sesji 
  13.  session_register("user"); 
  14.  echo "login23: <b>".$user."</b><br />"; 
  15.  echo "skąd: <b>".$tab_user[0]['skad']."</b><br />"; 
  16.  echo "wykop: <b>".$tab_user[0]['wykoptxt']."</b><br />";
  17.  echo "plec: <b>".$tab_user[0]['plec']."</b><br />";
  18.  echo " gg: <b>".$tab_user[0]['gg']."</b>,<br /> data: <b>".$tab_user[0]['data']."</b>"; 
  19.  
  20.  
  21. ?>


i teraz pytanie gdzie i co mam dodać? Wiem że może to głupie pytanie, ale każdy kiedyś zaczynał od zera winksmiley.jpg
gebp
Z tego co podałeś robisz jeden błąd. Nie posłuchałeś moich przedmówców i nie poczytałeś o AJAX'ie.

Jak wolisz. Podpowiem:

Usuń z pliku omnie.php
  1. <?php include 'test.php'; ?>
!*!
ok, ten include z test.php to wstawiłem tak aby sprawić czy jest wogóle połączenie z bazą... jak go usunę to i tak nic to nie daje... czytałem o ajaxie ale coś za mało, albo sie doczytać nie mogę jak to zrobić... sad.gif kombinuje dalej...
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.