2013-02-17 15 views
27

Tak oto jest mój problem, używam AJAX (jQuery), aby opublikować formularz do process.php, ale strona rzeczywiście musi echo odpowiedzi, takich jak apple lub plum. Nie jestem pewien, jak wziąć odpowiedź od process.php i mają to zapisane jako zmienna ...Uzyskaj odpowiedź z pliku PHP za pomocą AJAX

Oto kod mam tak daleko:

<script type="text/javascript"> 
     function returnwasset(){ 
      alert('return sent'); 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       success function(){ 
        //echo what the server sent back... 
       } 
      }); 
     } 
    </script> 

także będę musiał echo odpowiedź w process.php w json? czy zwykły tekst będzie w porządku?

Przepraszam, jeśli to brzmi jak głupie pytanie, po raz pierwszy robię coś takiego w Ajax.

PS: Jak mogę nazwać żądanie POST w powyższym kodzie?

+5

Nie głupie pytanie. –

Odpowiedz

32

<?php echo 'apple'; ?> to dosłownie wszystko, czego potrzebujesz na serwerze.

jak dla strony JS, wyjście skryptu po stronie serwera jest przekazywana jako parametr do funkcji sukces procedury obsługi, więc trzeba było

success: function(data) { 
    alert(data); // apple 
} 
+0

ok, źle to wypróbować – user115422

+0

Używam tego: ' 'ale z jakiegoś powodu to nie działa ... Dosłownie ustawiłem serwer na echo jabłko, ale mój skrypt nie robi nawet pierwszego alarmu (powrót został ustawiony), który był przed ... coś jest nie tak z moją składnią? – user115422

+0

'Funkcja sukcesu' nie ma znaku': 'po pomyślnym zakończeniu. możesz trywialnie sprawdzić błędy składni, otwierając konsolę JS/debug w przeglądarce. –

13
<script type="text/javascript"> 
     function returnwasset(){ 
      alert('return sent'); 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       dataType:'text'; //or HTML, JSON, etc. 
       success: function(response){ 
        alert(response); 
        //echo what the server sent back... 
       } 
      }); 
     } 
    </script> 
+0

dziękuję za odpowiedź, dałem mu uprowadzenie, teraz muszę tylko zdecydować, kto oznaczyć jako odpowiedź :) – user115422

+3

" Z dużą mocą przychodzi duża odpowiedzialność." -Ben Parker – Ethan

+0

Przepraszam za etan, ale ponieważ znak na to odpowiedział, myślę, że zasługuje na to, by zaznaczyć to jako odpowiedź, a potem mnie poprowadził. Nadal dałem ci uptoot :) dzięki i tak! – user115422

9

w pliku PHP, gdy echo twoich danych użyj json_encode (http://php.net/manual/en/function.json-encode.php)

np.

<?php 
//plum or data... 
$output = array("data","plum"); 

echo json_encode($output); 

?> 

w kodzie JavaScript, gdy AJAX zakończy dane odpowiedzi JSON zakodowane można przekształcić tablicy js tak:

$.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       success function(json_data){ 
        var data_array = $.parseJSON(json_data); 

        //access your data like this: 
        var plum_or_whatever = data_array['output'];. 
        //continue from here... 
       } 
      }); 
22

Dobrą praktyką jest stosowanie tak:

$.ajax({ 
    type: "POST", 
    url: "/ajax/request.html", 
    data: {action: 'test'}, 
    dataType:'JSON', 
    success: function(response){ 
     console.log(response.blablabla); 
     // put on console what server sent back... 
    } 
}); 

a część php jest:

<?php 
    if(isset($_POST['action']) && !empty($_POST['action'])) { 
     echo json_encode(array("blablabla"=>$variable)); 
    } 
?> 
+3

Najbardziej zgadzam się z tą odpowiedzią. Możesz również uwzględnić wiele zmiennych w odpowiedzi, takich jak 'array (" blablabla "=> $ zmienna," success "=> true," user_message "=" hello ")' po prostu użyj ich w JavaScript, np. 'response.success'. – SharpC

0
var data="your data";//ex data="id="+id; 
     $.ajax({ 
     method : "POST", 
     url : "file name", //url: "demo.php" 
     data : "data", 
     success : function(result){ 
       //set result to div or target 
       //ex $("#divid).html(result) 
     } 
    }); 
+1

Jeśli traktujesz "dane" jako ciąg znaków, to w jaki sposób będą przesyłane rzeczywiste dane? – Ramkee

Powiązane problemy