2012-03-19 6 views
0

このコードは、(JQ v1.3.2を使用している)私の開発ボックスのいずれかで動作します。 Chromeが送信したフォームデータを見ると、MessageID []が渡されています。これは、メッセージIDが見つからないという関数がなぜ不平を言っているのかを説明しています。誰かが私を不幸から救い、私がどのように修正できるか教えてもらえますか? (urg、申し訳ありません...私はこれが何かを知っているべきであることを知っています。)Ajaxチェックボックスの選択(古いコード、jQ v1.3で動作)

いつものThx。

<input type="checkbox" name="message" value="#messageID#" /> 


$('.move').click(function(e){       
var folderID = $(this).attr('data-id');         
var selected = new Array(); 
$("input:checkbox[name=message]:checked").each(function() { 
selected.push($(this).val()); 
}); 
$.post(
<cfoutput>"My.cfc?method=moveMessage&ID=123&time=#now()#", </cfoutput> 
{folderID: folderID, messageID: selected }, 
function() { 
loadMessages(); 
}); 
    return false; 
    alert('Please select at least one message.') 
}); 

答えて

0

私はあなたが([]は含まれません)パラメータ連載の「伝統的な」形をしたいと思います

の通り:serializeのドキュメントに指定されているあなたはまた、世界的にこのプロパティを設定することができます

$.ajax({ 
    type: "POST", 
    data: { folderID: folderID, messageID: selected }, 
    url: <cfoutput>"My.cfc?method=moveMessage&ID=123&time=#now()#", </cfoutput> 
    success: function() { 
     loadMessages(); 
    }, 
    traditional: true // <-- use "traditional" param serialization 
}); 

:このオプションを取得するには、あなたの$.post$.ajax呼び出しに変換する必要があるとしていますjQuery 1.4では、$ .param()メソッドは深いオブジェクト を再帰的にシリアライズし、PHPやRuby on Railsなどの最新のスクリプト言語とフレームワーク に対応します。この機能を無効にするには をグローバルにjQuery.ajaxSettings.traditional = true;に設定します。

+0

ありがとうございました。 – Kerrie

+0

@ケリー:いいえ問題は、あの人も私の前に噛まれている:) –

関連する問題