2009-07-01 5 views
1

FormBuilderのアプリケーションでCakePhpとjQueryを使用しています。 私はフォームに入力されたすべての値を取得したい

<form action="/cake_1.2.1.8004/index.php/results/submit1" method="post" 
                  id="ResultSubmit1Form"> 
    <fieldset style="display: none;"> 
     <input type="hidden" value="POST" name="_method"/>  
    </fieldset> 

    <div class="input text"> 
     <label for="1">Doj</label> 
     <input type="text" value="" style="width: 300px;" id="1" name="Doj"/> 
    </div> 

    <div class="input text"> 
     <label for="2">Name</label> 
     <input type="text" value="" style="width: 300px;" id="2" name="Name"/> 
    </div> 
    <div class="input textarea"> 
     <label for="3">Address</label> 
     <textarea style="height: 300px;" id="3" rows="6" cols="30" name="Address"/> 
    </div> 
    <div class="input text"> 
     <label for="4">Age</label> 
     <input type="text" value="" style="width: 200px;" id="4" name="Age"/> 
    </div> 
    <br/><br/> 
    <div class="submit"> 
     <input type="submit" value="submit"/> 
    </div> 
</form> 

などのフォームを抱えています。

jQueryのフォームプラグインは私が

function submit1() 
    { 
     echo "In controller ".http_build_query($_POST);//echoes correctly 
    } 
としての私のCakePHPのコントローラで取得し

 _method=POST&Doj=07%2F09%2F2009&Name=aruna&Address=xyz&Age=22 

同じよう

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#submit").eq(0).click(function(){ 

      var serializedFormStr = $("#ResultSubmit1Form :input[value]").serialize(); 
      alert(serializedFormStr); 
      $.ajax({ 
       type: "POST", 
       url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1", 
       data: serializedFormStr, 
       success: function(msg){ 
        alert("Data Saved: " + msg); 
       }//success 
      });//ajax 
     }); 
    });//ready 
</script> 

alert(serializedFormStr);ショーのような値を取得するには、次のコードを使用している使用して

このクエリ文字列から個々のデータを取得するにはどうすればよいですか?それを私のデータベースに保存する。 私にお勧めします..

答えて

0

私はそれを取得しません...なぜあなたはhttp_build_queryを呼び出していますか?あなたは確かに$_POST['Doj']を見る必要があります。

foreach ($_POST as $key => $value) 
    echo 'The value of ' . $key . ' is ' . $value; 

またはすべてのキーの配列を取得:

$keys = array_keys($_POST); 
// $keys is now array('Doj', 'Name', 'Address', 'Age') 

がその助けをい

次のような$ _POSTをループできますか?

+0

実際に私が知っていたいけませんフィールド名Doj私のcontroller.So私はフィールド名とその値の両方を送信していると両方のテーブルに保存したい。 – useranon

1

私はこれに問題があり、http_build_queryには "5.1.2 arg_separatorパラメータが追加されて以来、"という3つの引数があることがわかりました。(ローカルMs-windowsファイル:mk:@MSITStore:D:\ Reference \ oq \ php \ php_manual.chm ::/res/function.http-build-query.html as web http://php.net/manual/en/function.http-build-query.php

私は$ _POST var dumpを実行したとき、2番目と3番目のvaribaleの名前はamp; rowsPerPageとamp ; startNumber大手&が、私は私が何をしていたかにこれをしなければならなかった何らかの理由で

を食べていました

私の場合、2番目の引数(文字列であるnumeric_prefix)は必要ありませんでした。明示的にarg_separatorパラメータを '&'に設定しました。

ヘルプファイルの例には、オプションとして&ampamp;を示したが、それは動作しませんでした私は明示的にarg_separatorパラメータを設定した後、これまでのすべてを理由何のため

は大丈夫行きました:「&」