2015-06-06 28 views
11

Tôi mới bằng PHP/jquery Tôi muốn hỏi cách gửi dữ liệu json từ một trường biểu mẫu như (tên, tuổi, v.v.) bằng ajax theo định dạng json. Đáng buồn là tôi không thể tìm thấy bất kỳ thông tin liên quan về điều này thậm chí có thể làm điều đó một cách năng động? Các tìm kiếm của Google chỉ trả lại các câu trả lời như xây dựng dữ liệu theo cách thủ công. như: name: X Y, age: 32, v.v.Gửi dữ liệu biểu mẫu với jquery ajax json

Có cách nào để thực hiện việc đó không?

Cảm ơn sự giúp đỡ!

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

vui lòng hiển thị một số mã mà bạn đã làm việc để chúng tôi có thể giúp bạn trong số –

+0

Xin chào Oli Soproni B.! Cảm ơn nhận xét của bạn, câu hỏi của tôi được chỉnh sửa bằng mã biểu mẫu. – user1888798

Trả lời

14

đây là một đơn giản một

đây là test.php tôi để thử nghiệm chỉ

<?php 

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

echo json_encode($_POST); 

đây là index.html của tôi

<!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> 

Cả hai tập tin đang diễn ra trong cùng một thư mục

3

Bạn có thể sử dụng serialize() như thế này:

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

    } 
}); 
+0

Nếu bạn đang sử dụng '$ ('form'). Serialize()' thì bạn không tạo dữ liệu cho một đối tượng; nó chỉ nên là 'dữ liệu: $ ('form'). serialize(),'. –

1

gửi dữ liệu từ formfields lại cho máy chủ (php) được thường là thực hiện bằng phương thức POST có thể tìm thấy trở lại trong mảng superglobal $ _POST bên trong PHP. Không cần phải chuyển đổi nó thành JSON trước khi bạn gửi nó đến máy chủ. Ví dụ nhỏ:

<?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> 

Với AJAX bạn có thể làm chính xác điều tương tự, chỉ khi không làm mới trang.

Các vấn đề liên quan