2016-09-26 13 views
1

こんにちは、私はext3 typed3拡張子を持っています。これは、フォームを持つモデルウィンドウを含んでいます.Ajax呼び出しを提出するとupdateAction.Myの問題を介して基になるテーブルを更新します。getArgument ()controller.Myコード内方法はAjaxフォーム提出 - typo3

下に与えられている私の形態は

url_update = '<f:uri.action action="updateFileds" absolute="1" noCacheHash="1"/>'; 
jQuery.ajax({ 
     url: url_update, 
     type: "POST", 
     data: params, 
     success: function (data) { 
      if (data == 'true') { 
       location.reload(); 
      } else { 
      } 
     } 
    }); 
<form id="updatewindow" method="POST" name="iframe"> 
    <p><label for="fields">' + $(title).html() + ':</label> 
    <input type="text" value="' + cell_data + '" name="tx_suserform_userform[newUser][name]"></p> 
    </form> 

のAjaxコールであります私のコントローラで0私は

$post_val = $this->request->getArgument('name'); 

を書いたが、それは エラーとを返す

$this->request->getArguments() 

のみ

答えて

1

$this->request->getArguments()私が得たFORMDATAを使用する場合

 url_update = '<f:uri.action action="updateFileds" absolute="1" noCacheHash="1"/>'; 
    var params = {'tx_pluggin_signature[name]':'test','tx_pluggin_signature[phone]':'(456) 456-2345'}; 
jQuery.ajax({ 
     url: url_update, 
     type: "POST", 
     data: params, 
     success: function (data) { 
      if (data == 'true') { 
       location.reload(); 
      } else { 
      } 
     } 
    }); 
+0

正確に..私が知る必要があったもの。 –

2

あなたがJavaScriptのにFormDataオブジェクトを使用してフォームデータを取得することができ、コントローラ名とアクションを返す:

url_update = '<f:uri.action action="updateFileds" absolute="1" noCacheHash="1"/>'; 
var params = new FormData(jQuery('#updatewindow').get(0)); 
jQuery.ajax({ 
    url: url_update, 
    type: "POST", 
    data: params, 
    success: function (data) { 
     if (data == 'true') { 
      location.reload(); 
     } else { 
     } 
    } 
}); 

You shoulおそらく流体を使用してフォームをレンダリングします。そうでなければ、extbaseがフォームから欠落しているものがあります(流体生成フォームの隠れたdivを確認してください)。

データをPOSTするURLを取得するには、この正確な目的のためにtyposcript_renderingという拡張子を使用することをおすすめします。 HTMLページ全体を返さないURLを生成しますが、呼び出されたアクションのテンプレートからの結果のみを返します。それを使用するにはcHashを有効にする必要があります。

+0

私のコードである形式のポスト/取得引数

$pluggin_signature['argument'] 

はので、私はajax.Hereからその形式でパラメータを渡す受け取ります次のエラー:FormEditを実装していないオブジェクトでTypeError: 'append'が呼び出されました。 –

+0

どこでエラーが発生しますか? 'jQuery.ajax'や' var params'行の呼び出しでは? – Jost

+0

jquery.min.jsにあります(行6) –