我确信有些东西我没有在那里读过,但我做的每一次搜索都会出现紫色链接。我的目标是拥有一个使用ajax的表单,以避免页面刷新,并避免在手动页面刷新时提交。我想上传文件并将数据插入数据库表。我实际上把这部分放下了。问题是该操作是在页面加载时启动的。我认为这是因为我的ajax函数使用#multiform).submit,但是如果我将其更改为#submit).submit那么ajax脚本不会将数据发送到upload.php而我最终会得到一个空白数组传递给upload.php。
我可以使用按钮而不是表单提交的输入来单击上传。这一切都没有使用formdata。我需要使用formdata来上传文件。以下脚本确实有效。我只需要在点击提交后工作,而不是在页面加载时自动工作。
正如我正在学习的那样,我认为formObj = $(this)指的是multiform并抓取对象,所以当我更改multiform to submit(this)不再起作用时。有可能我只是需要以某种方式改变那个领域吗?几个星期以来,我一直在努力。我一直在靠近,但仍然不在那里。请帮我。谢谢。
我的表格:
<form name="multiform" id="multiform" action="upload.php" method="POST" enctype="multipart/form-data">
Name: <input type="text" name="dname" value="Ravi"/> <br/>
Age :<input type="text" name="age" value="1" /> <br/>
Image :<input type="file" name="photo" /><br/>
<input type="submit" id="submit" value="Ajax File Upload" />
</form>
我的js:
jQuery(document).ready(function($) {
$("#multiform").submit(function(e)
{
var formObj = $(this);
var formURL = formObj.attr("action");
var formData = new FormData($(this)[0]);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{ alert(data)
},
error: function(jqXHR, textStatus, errorThrown)
{
}
});
e.preventDefault(); //Prevent Default action.
});
$("#multiform").submit(); //Submit the form
});
答案 0 :(得分:0)
我通过向后看它来解决这个问题。我用谷歌搜索了如何在页面加载时自动提交表单,并发现$(document).submit()在页面加载时提交表单,所以我拿出了$(&#34;#multiform&#34;)。 ();现在它的工作原理。对于可能发现此问题且正在开展类似工作的其他人的补充说明。由于某种原因,具有提交输入类型提交的id会导致名称和年龄变量被忽略。