2011-12-19 41 views
2

誰かが同じページの別のフォームから動的データを投稿するためにjQgridを使用したことがあるのだろうか。ダイナミックな点では、投稿する入力名はわかりませんが、グリッドのレンダリング時にシリアル化されたフォーム全体を投稿するだけです。jQgrid投稿時にカスタムデータを投稿

私はpostDataで余分なデータを設定していますが、urlで正しくエンコードされているため、urlで正しく渡されません。参照:

$(document).ready(function() { 
    $("#rpt").jqGrid( 
    { url:'/get.json', 
    postData: {filter: $('form').serialize()}, 
    datatype: "json", 
    gridview: true, 
    colModel:[id:'col1'] 
}); 
}); 

を、ここでさまざまなスレッドを通って、他のサイトで、私は無駄に提案JSON.stringifyと、フォーム上のserializearray()と同様に、カスタム機能を試してみました。フォームデータはエンコードされて表示され、_GET経由で反対側では利用できません。

どのような提案も素晴らしいでしょう - ありがとう!

答えて

1

どのフォームでサーバー側のフォームからデータを取得するかわかりません。それでも私は、次のテストフォーム

<form id="myForm"> 
    <div><input type="text" name="a" value="1 from a" id="a" /></div> 
    <div><input type="text" name="b" value="2 from b" id="b" /></div> 
    <div><input type="hidden" name="c" value="3 from c" id="c" /></div> 
    <div> 
    <textarea name="d" rows="8" cols="40">4</textarea> 
    </div> 
    <div><select name="e"> 
    <option value="5" selected="selected">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    </select></div> 
    <div> 
    <input type="checkbox" name="f" value="8" id="f" /> 
    </div> 
</form> 

の場合result変数は

var result = { 
    a: "1 from a", 
    b: "2 from b", 
    c: "3 from c", 
    d: "4", 
    e: "5" 
} 

のできるので変換されます以下のフォーム

postData: { 
    filter: function() { 
     var result = {}, i, item, 
      formInfo = $('form#myForm').serializeArray(), 
      l = formInfo.length; 
     for (i = 0; i < l; i++) { 
      item = formInfo[i]; 
      result[item.name] = item.value; 
     } 

     return JSON.stringify(result); 
    } 
} 

postDataを使用するためにあなたをお勧めしますデータが完了します。次にJSON.stringifyを使用してオブジェクトresultをJSON文字列に変換することをお勧めします。 (。それは必要ありませんすることができ、サーバーコードに依存)だから、filtersパラメータを使用すると、対応する小さなdemoのHTTPトラフィックを検査するためにFiddlerまたはFirebugを使用することができます

{"a":"1 from a","b":"2 from b","c":"3 from c","d":"4","e":"5"} 

として送信されます。

+0

こんにちはオレグ! POSTデータの検索パラメータとしてフォームデータ全体を送信しようとしましたが、MVCコントローラで厳密に型指定されたモデルと同じものを取得しようとしました。しかし、私は失敗しました。ここに私の投稿はhttp://stackoverflow.com/questions/14522263/post-form-with-jqgrid-in-asp-net-mvc-3です。これを達成するためにアイデアを共有すれば大きな助けになるでしょうか? –

+0

@ムラリ:私は顧客のために緊急の仕事をしなければならない。後で私はあなたに質問を読んでみるつもりです。私はあなたを助けようとします。あなたの質問に詳細を追加できますか?たとえば、 'SearchViewModel'の定義と' id = "検索フォーム"のフォームのHTMLフラグメントです。あなたは[Fiddler](http://www.fiddler2.com/Fiddler2/version.asp)、[Firebug](http://getfirebug.com/)、またはIEまたはChromeの開発者ツールに関して正確にHTTPリクエストがサーバーに送信されましたか?エラーメッセージと共に要求と応答の詳細を含めることもできます。 – Oleg

+0

ビューのモデルとフォーム、およびその他の必要な情報を使用して私の質問を更新しました。私はすでにFirebugを使って私の投稿リクエストparamsを見てきましたが、私はRequest ["PostData"]を使ってJSON文字列としてコントローラ内で取得できますが、どのようにしてアクションメソッドのパラメータviewModel、次にviewModelを取得するだけです。名前など? –