Ajax 表单提交 - 错误 3
Ajax form submission - typo3
我有一个 extbase TYPO3 扩展。它包含一个带有表单的模型 window
。在提交 ajax 调用时,通过 updateAction
更新基础 table。我的问题是如何通过控制器中的 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>
Ajax 通话:
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 {
}
}
});
在我的控制器中我写了
$post_val = $this->request->getArgument('name');
但它returns错误和
$this->request->getArguments()
只有 returns 控制器名称和操作。
您可以使用 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 {
}
}
});
您可能应该使用流体渲染您的表单,否则表单中将缺少一些 extbase 依赖的东西(检查任何流体生成的表单中隐藏的 div)。
要获取 URL 到 POST 的数据,我建议使用扩展名 typoscript_rendering
- 它就是为此目的而制作的。它生成一个 URL,它不会 return 整个 HTML 页面,而只会生成调用操作模板的结果。您需要启用 cHashes 才能使用它。
$this->request->getArguments()
接收格式为
的 post/get 参数
$pluggin_signature['argument']
所以我以 ajax.Here 的格式传递参数是我的代码
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 {
}
}
});
我有一个 extbase TYPO3 扩展。它包含一个带有表单的模型 window
。在提交 ajax 调用时,通过 updateAction
更新基础 table。我的问题是如何通过控制器中的 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>
Ajax 通话:
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 {
}
}
});
在我的控制器中我写了
$post_val = $this->request->getArgument('name');
但它returns错误和
$this->request->getArguments()
只有 returns 控制器名称和操作。
您可以使用 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 {
}
}
});
您可能应该使用流体渲染您的表单,否则表单中将缺少一些 extbase 依赖的东西(检查任何流体生成的表单中隐藏的 div)。
要获取 URL 到 POST 的数据,我建议使用扩展名 typoscript_rendering
- 它就是为此目的而制作的。它生成一个 URL,它不会 return 整个 HTML 页面,而只会生成调用操作模板的结果。您需要启用 cHashes 才能使用它。
$this->request->getArguments()
接收格式为
$pluggin_signature['argument']
所以我以 ajax.Here 的格式传递参数是我的代码
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 {
}
}
});