Re: [問題] 想請教關於JavaScript傳值方面問題!
這裡提供兩種傳法
// ajax 傳法
function saveOrder() {
var menu_queue = [];
$('#menu1 li').each(function(){
menu_queue.push( $(this).text() );
});
$.post('order.php', {items: menu_queue}, function(response){
// 處理你的 response
});
}
// form 傳法
// 建立一個 html 表單然後把資料加進去,之後觸發 submit 事件
function saveOrder() {
var form = [ '<form action="order.php" method="post">' ];
$('#menu1 li').each(function(){
form.push(
'<input type="hidden" name="items[]" value="' + $(this).text() + '" />'
);
});
form.push('</form>');
$(form.join('')).trigger('submit');
}
上面寫的兩種傳法都是使用 POST 方法,欄位名稱都是 items
所以後端的處理程序是一樣的
差別就是 form 傳法,會直接將頁面導到接收程式,所以 php 需要輸出完整的 html 回應
那 ajax 傳法就是停留在原頁,所以後端的輸出只需要輸出回應就好,不需要輸出整頁
因為上面的 ajax 例子沒有特別指明要 json 回應,所以 php 處理完之後,輸出的東西
看你 response handler 裡面會怎麼處理,php 就輸出什麼
如果 $.post 有要求 json 格式的回應,如 $.post(url, data, handler, 'json')
那 php 裡的回應要這樣做
// 上面處理完了
json_encode(array('content' => $content));
js 這邊的 response handler,這樣取得上面的 content
function(response) {
alert(response.content);
}
請參考 http://api.jquery.com/category/ajax/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.169.188
※ 編輯: beatada 來自: 111.255.169.188 (04/09 21:24)
推
04/12 19:05, , 1F
04/12 19:05, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):