Javascript 如何通过Ajax调用将Joomla表单数据传递给控制器函数
在Joomla3.3表单中,我插入了一个ajax脚本来动态更新一些表单字段。 …脚本的主要部分是Javascript 如何通过Ajax调用将Joomla表单数据传递给控制器函数,javascript,ajax,view,joomla,http-post,Javascript,Ajax,View,Joomla,Http Post,在Joomla3.3表单中,我插入了一个ajax脚本来动态更新一些表单字段。 …脚本的主要部分是 formdata = new FormData(); jQuery.ajax({ type: "POST", dataType: "json", timeout: 6000, url: "index.php?option=com_mycomponent&task=component.save", data: formdata, ...................... ........
formdata = new FormData();
jQuery.ajax({
type: "POST",
dataType: "json",
timeout: 6000,
url: "index.php?option=com_mycomponent&task=component.save",
data: formdata,
......................
........
启动ajax脚本后,$\u POST在控制器中完全为空,我无法访问重要的formdata
与此同时,我尝试了几种方法
formdata = new FormData($(this)[0]); => nothing happens
或
或
如何通过Ajax POST方法将formdata(jform对象)传递给控制器?尝试使用jQuery的序列化功能:
var formdata = jQuery( "#formid" ).serialize();
这里formid是form元素的id。希望这有帮助。我发现了两个问题 1) 表单是一个子表单,显示在选项卡中。因此,不应在脚本中指定子窗体的id。您应该分配主窗体的id 2) ajax参数“contentType:false”应该被删除 有了这个参数,ajax调用将完成它的工作 ajax脚本:
$document->addScriptDeclaration('
jQuery(document).ready(function () {
jQuery("#btn1").click(function() {
alert ("Button");
var formdata = jQuery( "#main-form" ).serialize();
jQuery.ajax({
type: "POST",
dataType: "json",
timeout: 6000,
url: "index.php?option=com_mycomponent&task=component.save",
data: formdata,
processData: false,
success:function(result) {
jQuery.each(result.data, function(i, item) {
..........
});
}
});
return false;
});
});
');
html:
formaction=“”
method=“post”name=“market\u photos”id=“subform form”class=“form validate”enctype=“multipart/form data”>
......
....
我希望这些部分能提供更好的见解 还是一样的问题$_帖子以空结尾:-(你能把你的html、脚本和动作代码放在这里吗?$document->addScriptDeclaration('jQuery(document).ready(function(){jQuery('btn1')。点击(function(){alert('Button”);var formdata=jQuery('market_photo-form”)。序列化();jQuery.ajax({type:'POST',dataType:'json“,超时:6000,url:“index.php?option=com_mycomponent&task=component.save”,数据:formdata,processData:false,contentType:false,success:function(result){jQuery.each(result.data,function(i,item){………};});return false;}););现在是html部分:form action=“”method=“post”name=“market\u photos”id=“market\u photo-form”class=“form validate”enctype=“multipart/form data”>
- 。。。。。
var formdata = jQuery( "#formid" ).serialize();
$document->addScriptDeclaration('
jQuery(document).ready(function () {
jQuery("#btn1").click(function() {
alert ("Button");
var formdata = jQuery( "#main-form" ).serialize();
jQuery.ajax({
type: "POST",
dataType: "json",
timeout: 6000,
url: "index.php?option=com_mycomponent&task=component.save",
data: formdata,
processData: false,
success:function(result) {
jQuery.each(result.data, function(i, item) {
..........
});
}
});
return false;
});
});
');
form action="<?php echo JRoute::_('index.php?option=com_mycomponent'); ?>"
method="post" name="market_photos" id="subform-form" class="form-validate" enctype="multipart/form-data">
<fieldset class="form-horizontal">
<legend><?php echo JText::_('COM_MYCOMPONENT'); ?></legend>
<ul class="adminformlist">
<table id="table1">
<tbody>
</tbody>
</table>
</ul>
</fieldset>
<div class="span5">
<fieldset class="form-horizontal">
<legend><?php echo JText::_('COM_MYCOMPONENT'); ?></legend>
<div class="control-group">
......
....