Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mvc][ajax] Jak poprawnie zwrócić dane ajaxem, zwraca cały dokument zamiast interesujących mnie danych
kamil_lk
post 7.02.2014, 17:52:13
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Cześć.

Pracuję obecnie nad projektem w którym wykorzystuję wzorzec MVC.
Mój problem polega na tym, że chcę wyciąganąć dane z bazy przy pomocy ajaxa.
Lecz zamiast danych z bazy otrzymuję to co zawiera cały plik (jego całą strukturę) ajax.php
W jaki sposób mogę to ładnie zrobić, aby zwracało mi to co zwraca funkcja pobierz w moim przykładzie?

index.html
  1. <!doctype html>
  2. <meta charset="utf-8">
  3. <title>Dokument bez tytułu</title>
  4. <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.js"></script>
  5. </head>
  6.  
  7. <form action="" method="post">
  8. <select name="name"></select>
  9. <input type="button" name="execute" id="execute" value="Execute" />
  10. </form>
  11. <script type="text/javascript">
  12. $(function(){
  13.  
  14. $.ajax({
  15. type: "POST",
  16. url: "ajax.php",
  17. success: function(msg) {
  18. alert( "Dane zwrotne: " + msg );
  19. },
  20. error: function() {
  21. alert( "Wystąpił błąd w połączniu!!!");
  22. }
  23. });
  24.  
  25. });
  26. </body>
  27. </html>


ajax.php
  1. <?php
  2. echo "asd<br />";
  3.  
  4. function pobierz(){
  5.  
  6. $tab = array('Kamil', 'Piotr', 'Michał'); //te dane są ładowane z bazy
  7. return $tab;
  8. }
  9.  
  10. pobierz();
  11. echo "<br />zxc<br />";
  12. ?>


Ten post edytował kamil_lk 7.02.2014, 18:00:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
viking
post 7.02.2014, 17:58:38
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


A gdzie tu wzorzec MVC? Czy masz to postawione na jakimś serwerze z obsługą PHP?


--------------------
Go to the top of the page
+Quote Post
Turson
post 7.02.2014, 17:59:16
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


die; na koncu metody
Go to the top of the page
+Quote Post
matiit
post 7.02.2014, 18:00:31
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Po co wywołujesz funkcję pobierz? Serio pytanie, bo nie widzę sensu po co wywoływać funkcję na marne?
Go to the top of the page
+Quote Post
Turson
post 7.02.2014, 18:02:41
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


matiit, bo to "MVC" tongue.gif

Autorze tematu, jeżeli zwróconą tablicę z php chcesz wykorzystać w js, to należy najpierw w php przekonwertować ją w jsona json_encode(), dać print_r a w js jsona odebrać i sparsować

Ten post edytował Turson 7.02.2014, 18:04:12
Go to the top of the page
+Quote Post
kamil_lk
post 7.02.2014, 18:05:46
Post #6





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


W podanym przykładzie mvc nie jest zaimplementowane.
Chodzi o to, gdy mamy plik ajax.php sa w nim wyświetlane różne dane takie jak:
-asd
-zxc
oraz jest wywoływana moja funkcja pobierz, która zwraca nam tablicę z danymi.

I teraz chcę, aby dane przesłąne z powrotem do pliku index.html zawierały tylko to co zwraca funkcja pobierz, bez 'asd', 'zxc'
Go to the top of the page
+Quote Post
matiit
post 7.02.2014, 18:08:51
Post #7





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Kod
<?php
    function pobierz(){

        $tab = array('Kamil', 'Piotr', 'Michał'); //te dane są ładowane z bazy
        return $tab;
    }

    echo pobierz();
?>


Ten post edytował matiit 7.02.2014, 18:09:12
Go to the top of the page
+Quote Post
Turson
post 7.02.2014, 18:09:31
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Bez sensu. Zwróci ci całą zawartość pliku i to normalne. Daj tą funkcję do pustego pliku

@up
raczej print_r

Ten post edytował Turson 7.02.2014, 18:10:07
Go to the top of the page
+Quote Post
matiit
post 7.02.2014, 18:12:07
Post #9





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Jasne, jak to jest arrayka, to print_r, a najlepiej json_encode smile.gif
Go to the top of the page
+Quote Post
kamil_lk
post 7.02.2014, 18:18:01
Post #10





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


W podany sposób? Cały czas wywala "Wystpił błąd w połączeniu"

  1. <script type="text/javascript">
  2. $(function(){
  3.  
  4. $.ajax({
  5. dataType: "JSON",
  6. type: "POST",
  7. url: "ajax.php",
  8. success: function(msg) {
  9. alert( "Dane zwrotne: " + msg );
  10. },
  11. error: function() {
  12. alert( "Wystąpił błąd w połączniu!!!" );
  13. }
  14. });
  15.  
  16. });


  1. <?php
  2. header('Content-Type: application/json');
  3. echo "asd<br />";
  4.  
  5. function pobierz(){
  6.  
  7. $tab = array('Kamil', 'Piotr', 'Michał');
  8. print_r(json_encode($tab));
  9. }
  10.  
  11. pobierz();
  12. echo "<br />zxc<br />";
  13. ?>
Go to the top of the page
+Quote Post
Turson
post 7.02.2014, 18:21:03
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Nie słuchasz nas. Mówiliśmy, że masz mieć w tym pliku dane które zwracasz.
dataType: "JSON" jak i nagłówek są niepotrzebne.
Poza tym po co tu ajax skoro nic nie wysyłasz?
np. $('#dane').load('ajax.php')

Ten post edytował Turson 7.02.2014, 18:21:35
Go to the top of the page
+Quote Post
kamil_lk
post 8.02.2014, 21:14:59
Post #12





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Turson, dzięki.
Zrobiłem za pomocą funkcji die($dane_które_zwraca_metoda); i nie parsuje całej strony od nowa smile.gif
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: 26.06.2025 - 07:25