Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt danych JSON wysłanych z serwera
Forum PHP.pl > Forum > XML, AJAX
bono122b
Witam wszystkich.

Mam następujący problem. Mam skrypt, który wrzuca do bazy dane z inputa za pomocą ajaxa i to działa. W pliku php, który wykonuje inserta mam jednocześnie selecta, którym próbuję wyciągnąć ostatnio dodane dane, żeby od razu wyświetlić je na stronie odpowiednio sformatowane. W Firebug otrzymuje odpowiedz w formie JSON o np takiej tresci
{"id_komentarz":"26","id_foto":"3","id_usera":"1","komentarz":"sfsdfsd"}OK

Co zrobić żebym mógł wczytać od razu na moją stronęwszystkie dane wyciągane za pomocą selecta z bazy?

obecnie mam cos takiego:
  1. function dodaj_komentarz() {
  2. var id_foto = $('#id_foto').val();
  3. var id_user = $('#id_user').val();
  4. var komentarz = $('#komentarz').val();
  5. //var id_alb = $('#id_alb').val();
  6. //var update = $('#update'+licznik).val();
  7. $.ajax({
  8. type: "POST",
  9. url: "check_komentarze.php",
  10. dataType : 'json',
  11. data: {
  12. id_foto : id_foto,
  13. id_user : id_user,
  14. komentarz : komentarz,
  15. //opis_alb : asd,
  16. //update : update
  17. },
  18. complete : function(json) {
  19. document.getElementById('ostatni_komentarz').innerHTML = komentarz;
  20. }
  21. });
  22. };
  23. </script>


  1. <?php
  2. include("connect.php");
  3. $id_foto = $_POST['id_foto'];
  4. $id_user = $_POST['id_user'];
  5. $komentarz = $_POST['komentarz'];
  6.  
  7. if($komentarz != '')
  8. {
  9.  
  10. $sql = mysql_query("INSERT INTO komentarze (id_foto, id_usera, komentarz) VALUES ('$id_foto', '$id_user', '$komentarz')", $connection);
  11. if( $sql ) {
  12. $id = mysql_insert_id() ;
  13. $result = mysql_query( "SELECT * FROM komentarze WHERE id = '$id'" ) ;
  14. $wyjscie = mysql_fetch_assoc( $result ) ;
  15. }
  16. echo json_encode($wyjscie);
  17. echo 'OK';
  18. }
  19. else
  20. {
  21. echo 'nie OK';
  22. }
  23. ?>


W tej chwili komentarz jest wczytywany za pomocą innerHTML ale nie iwem jak pobrać np id_usera.
Pomoże ktoś?
trueblue
Zanim wykonasz json_encode w PHP, dodaj do tablicy wartość statusu, czyli np.: $arr['status']='OK' lub $arr['status']='ERROR'
Wtedy wykonaj json_encode.
W complete dostaniesz cały obiekt.
  1. complete : function(json) {
  2. alert(json.komentarz);
  3. alert(json.id_usera);
  4. alert(json.id_foto);
  5. alert(json.status);
  6. }


Możesz też zwracać tylko status, jako plain text, a dane pobierać ze zmiennych (tak jak obecnie robisz z komentarzem).
Chyba, że potrzebujesz również id_komentarz.
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.