2012-04-13 12 views
2

私は、ユーザーが(jQueryを使用して)入力の周りを自由に移動できるフォームを用意しています。以下のフォームの場合、ユーザーは「fieldD」とそれに続く「fieldA」、「fieldB」、「fieldC」が必要です。から提出されたフィールドの順番を教えてください

例形式:

<form id="myForm" method="post"> 
    <input type="submit"> 
    <table> 
     <tr><td><input type="text" name="fieldA"></td></tr> 
     <tr><td><input type="text" name="fieldB"></td></tr> 
     <tr><td><input type="text" name="fieldC"></td></tr> 
     <tr><td><input type="text" name="fieldD"></td></tr> 
    </table> 
</form> 

彼らはフォームを送信する際、ユーザが選択した順序を捕獲するための最良の方法は何ですか?

+0

助けましたか? – iambriansreed

+0

あなたはどんなサーバーサイドの言語を使用していますか? – iambriansreed

+0

@iambriansreedクラシックASPはサーバー側の言語です – Ojen

答えて

0

答えから考えてみると、jQueryを使用してテーブルを走査して順序を決定しました。私が実際にそれを実装するとき、私はフォームが提出された時点で(テーブルを横切って)順序を決定します。ここで

は、コンセプトを実証jsfiddleです:これらの答えのいずれかが

http://jsfiddle.net/kq8tT/6/

0

あなたは、アレイと数フィールド名にそれらの入力値を格納することができ:

<form id="myForm" method="post"> 
    <input type="submit"> 
    <input type="text" name="field[1]" /> 
    <input type="text" name="field[2]" /> 
    <input type="text" name="field[3]" /> 
    <input type="text" name="field[4]" /> 
</form> 

フィールド名は、すべての完全なソートアクションの後にリライトする必要があります。

// this will result in a PHP-array, e.g. 
$_POST['field'][0] 

foreach($_POST['field'] as $indexAsSetViaJs => $fieldValue) { 
    // process values in desired order 
} 
1

仕様では、フォームデータ内のフィールドの順序は未定義です。実際には、それはテキストオーダーである傾向がありますが、特にオーダーがクライアント側に変更された場合、私はそれを信じません。

おそらく、フィールド名の配列を作成し、注文が変更されるたびに変更することをお勧めします。クライアント側スクリプトなしでページを使用することが理にかなっている場合は、フォームのデータを送信するときにフィールドをテキスト形式で含む隠しフィールドを含め、配列のデータで内容を動的に置き換えるのが最も安全です。私は次のことを行っている過去に

0

<form id="myForm" method="post"> 
    <input type="submit"> 
    <table> 
     <tr><td><input type="text" name="fieldA"></td></tr> 
     <tr><td><input type="text" name="fieldB"></td></tr> 
     <tr><td><input type="text" name="fieldC"></td></tr> 
     <tr><td><input type="text" name="fieldD"></td></tr> 
    </table> 
    <input type="hidden" name="fields" value="fieldA,fieldB,fieldC,fieldD" /> 
</form> 

はつまり、正しい順序でフィールド名を隠しフィールドを追加しました。

関連する問題