2010-11-17 43 views
7

Xin chào, tôi là người mới làm việc với jQuery và Ajax. Tôi đang cố gắng gửi dữ liệu đến máy chủ bằng cách sử dụng phương thức Jquery POST. Và dữ liệu mà tôi truyền đi là một chuỗi. Bây giờ tôi không thể hiểu làm cách nào để chuyển dữ liệu và làm cách nào để truy xuất dữ liệu. Tôi đã thử tìm kiếm các bài viết cho vấn đề của mình, nhưng tôi đã không tìm thấy bài viết nào. Tôi tin rằng vấn đề của tôi là rất cơ bản.Chuyển dữ liệu từ jQuery sang PHP cho bài đăng ajax

if (1)//validateStep(step) 
{ 
if(step==1) 
{ 
var data = document.getElementById('hiddenContact').value; 
$.post('/callcenter/admin/postContacts', data); 
} 
} 

Bây giờ tôi sẽ đăng mã cho hành động postContacts của mình, không phải là điều lớn.

function postContacts() 
{ 
$this->autoRender = false; 
echo '<script>console.log("post contacts");</script>'; 
} 

Nhưng tôi nhầm lẫn về cách dữ liệu phải được truy lục. Bất kỳ trợ giúp được đánh giá cao. Tôi đang sử dụng CakePHP, vì vậy tôi đã phải sử dụng autoRender = false; làm cho chế độ xem tùy chọn.

Trả lời

16

Với jQuery post bạn có thể định nghĩa một hàm callback mà được thực hiện khi dữ liệu được trả về:

$.post('/callcenter/admin/postContacts', data, function(returnedData) { 
    // do something here with the returnedData 
    console.log(returnedData); 
}); 

Các data phải ở trong các hình thức:

{name: 'value', anotherName: 'another value'} 

đó tương đương với các bài tên trên kết thúc PHP có thể truy cập được bằng PHP thuần túy như sau:

echo $_POST['name'];   # prints "value" 
echo $_POST['anotherName']; # print "another value" 
2

Param dữ liệu được cho là một đối tượng có khóa và giá trị.

var data = { 
    hiddenContact: document.getElementById('hiddenContact').value 
} 
$.post('/callcenter/admin/postContacts', data); 

Sau đó trong PHP bạn có thể lấy nó như thế này:

$hiddenContact = $_POST["hiddenContact"]; 

Tôi không phải là người sử dụng CakePHP lớn nhưng tôi tin rằng phiên bản CakePHP là như thế này:

$hiddenContact = $this->params["hiddenContact"]; 
1
//javascript 
if(step==1) 
{ 
    var data = {'MyFieldName':document.getElementById('hiddenContact').value}; 
    $.post('/callcenter/admin/postContacts', data, function(returnData){ 
     alert('The server said ' + returnData); 
    }); 
} 

//read the post in php 
<? 
    echo 'Your ajax post data was '. $_POST['MyFieldName']; 
?> 
Các vấn đề liên quan