2015-06-06 32 views
11

Jestem nowy w PHP/jquery Chciałbym zapytać, jak wysłać dane json z pola formularza, jak (imię, wiek, itp.) Z ajax w formacie json. Niestety nie mogę znaleźć żadnych istotnych informacji na ten temat, że jest to możliwe, aby zrobić to dynamicznie? Wyszukiwania Google dają tylko odpowiedzi, takie jak ręczne gromadzenie danych. na przykład: name: X Y, age: 32 i tak dalej.Wysyłanie danych formularza z jquery ajax json

Czy jest to mimo wszystko?

Dzięki za pomoc!

Edit:

<form action="test.php" method="post"> 
Name: <input type="text" name="name"><br> 
Age: <input type="text" name="email"><br> 
FavColor: <input type="text" name="favc"><br> 
<input type="submit"> 
</form> 
+0

pokaż niektóre kody, nad którymi już pracujesz, abyśmy mogli Ci pomóc –

+0

Witaj Oli Soproni B.! Dzięki za komentarz, moje pytanie jest edytowane za pomocą kodu formularza. – user1888798

Odpowiedz

14

tutaj jest prosta

tu jest moje test.php do testowania tylko

<?php 

// this is just a test 
//send back to the ajax request the request 

echo json_encode($_POST); 

oto mój index.html

<!DOCTYPE html> 
<html> 

<head> 

</head> 
<body> 

<form id="form" action="" method="post"> 
Name: <input type="text" name="name"><br> 
Age: <input type="text" name="email"><br> 
FavColor: <input type="text" name="favc"><br> 
<input id="submit" type="button" name="submit" value="submit"> 
</form> 




<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     // click on button submit 
     $("#submit").on('click', function(){ 
      // send ajax 
      $.ajax({ 
       url: 'test.php', // url where to submit the request 
       type : "POST", // type of action POST || GET 
       dataType : 'json', // data type 
       data : $("#form").serialize(), // post data || get data 
       success : function(result) { 
        // you can see the result from the console 
        // tab of the developer tools 
        console.log(result); 
       }, 
       error: function(xhr, resp, text) { 
        console.log(xhr, resp, text); 
       } 
      }) 
     }); 
    }); 

</script> 
</body> 
</html> 

Zarówno plik to miejsce w tym samym katalogu

3

Można użyć serialize() tak:

$.ajax({ 
    cache: false, 
    url: 'test.php', 
    data: $('form').serialize(), 
    datatype: 'json', 
    success: function(data) { 

    } 
}); 
+0

Jeśli używasz '$ ('form'). Serialize()' to nie czynisz z danych obiektu; powinno to być po prostu 'dane: $ ('form'). serialize(),'. –

1

przesyłania danych z formfields powrotem do serwera (PHP) jest przeważnie wykonane metodą POST, które można znaleźć z powrotem w superglobalna tablica $ _POST wewnątrz PHP. Nie ma potrzeby przekształcania go w JSON przed wysłaniem go na serwer. Mały przykład:

<?php 

if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    echo '<pre>'; 
    print_r($_POST); 
} 
?> 
<form action="" method="post"> 
<input type="text" name="email" value="[email protected]" /> 
<button type="submit">Send!</button> 

Dzięki AJAX możesz zrobić dokładnie to samo, tylko bez odświeżania strony.

Powiązane problemy