Ajax表单提交-typo3

Ajax表单提交-typo3,ajax,model-view-controller,typo3,extbase,Ajax,Model View Controller,Typo3,Extbase,我有一个extbase TYPO3扩展名。它包含一个带有表单的模型窗口。提交时,ajax调用通过updateAction更新基础表。我的问题是如何通过控制器中的getArgument()-方法获取表单参数。我的代码如下 我的表格是: <form id="updatewindow" method="POST" name="iframe"> <p><label for="fields&quo

我有一个extbase TYPO3扩展名。它包含一个带有表单的模型
窗口
。提交时,ajax调用通过
updateAction
更新基础表。我的问题是如何通过控制器中的
getArgument()
-方法获取表单参数。我的代码如下

我的表格是:

<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>
但它返回错误

$this->request->getArguments()

仅返回控制器名称和操作。

您可以使用JavaScripts
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 {
        }
    }
});
url\u update='';
var params=newformdata(jQuery('#updatewindow').get(0));
jQuery.ajax({
url:url\u更新,
类型:“POST”,
数据:params,
成功:功能(数据){
如果(数据=='true'){
location.reload();
}否则{
}
}
});
您可能应该使用流体渲染表单,否则表单中将缺少extbase依赖的某些内容(请检查任何流体生成表单中的隐藏div)


为了获得将数据发布到的URL,我建议使用扩展名——它正是为了这个目的而设计的。它生成一个URL,该URL不会返回整个HTML页面,而只返回来自被调用操作模板的结果。您需要启用cHashes才能使用它。

您可以使用JavaScripts
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 {
        }
    }
});
url\u update='';
var params=newformdata(jQuery('#updatewindow').get(0));
jQuery.ajax({
url:url\u更新,
类型:“POST”,
数据:params,
成功:功能(数据){
如果(数据=='true'){
location.reload();
}否则{
}
}
});
您可能应该使用流体渲染表单,否则表单中将缺少extbase依赖的某些内容(请检查任何流体生成表单中的隐藏div)


为了获得将数据发布到的URL,我建议使用扩展名——它正是为了这个目的而设计的。它生成一个URL,该URL不会返回整个HTML页面,而只返回来自被调用操作模板的结果。您需要启用cHashes才能使用它。

$this->request->getArguments()
接收格式为的post/get参数

$pluggin_signature['argument'] 
所以我从ajax以这种格式传递了参数

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 {
        }
    }
});
url\u update='';
var参数={'tx_pluggin_签名[名称]':'test','tx_pluggin_签名[电话]':'(456)456-2345'};
jQuery.ajax({
url:url\u更新,
类型:“POST”,
数据:params,
成功:功能(数据){
如果(数据=='true'){
location.reload();
}否则{
}
}
});

$this->request->getArguments()
接收格式为的post/get参数

$pluggin_signature['argument'] 
所以我从ajax以这种格式传递了参数

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 {
        }
    }
});
url\u update='';
var参数={'tx_pluggin_签名[名称]':'test','tx_pluggin_签名[电话]':'(456)456-2345'};
jQuery.ajax({
url:url\u更新,
类型:“POST”,
数据:params,
成功:功能(数据){
如果(数据=='true'){
location.reload();
}否则{
}
}
});

使用formData时,我遇到了以下错误:TypeError:“append”调用了一个不实现接口formData的对象。您从哪里得到该错误?在调用
jQuery.ajax
,或jQuery.min.js(第6行)中的
var params
行中,当控制台(params)获取FormData时,{append=append()(.请帮助我当使用formData时,我遇到了以下错误:TypeError:“append”调用了一个不实现接口formData的对象。你从哪里得到这个错误?在调用
jQuery.ajax
,或者在控制台(params)我得到formData时在jQuery.min.js(第6行)的
var params
行中{append=append()}没有获取任何表单数据我更新了表单o流体。但是表单未显示:(.请帮助我确切地…我需要知道的。确切地…我需要知道的。