有一个用PHP编写的"创建配置文件"页面。有 2 个表单和 1 个 JQuery 函数。
<script type="text/javascript" >
$(document).ready(function(){
$('#photoimg').change(function(){
$("#imageform").ajaxForm({
target: '#preview'
}).submit();
});
});
</script>
这是图像显示的位置:
<div id='preview'></div>
表格-1:(用于上传个人资料图片)
<form id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'>
<input name="photoimg" id="photoimg" type="file" />
</form>
表格-2:(用于其他文本信息)
<form class="form-signin" name="reg" role="form" action="process.php" method="post">
.... some normal input values ....
<input type="submit" value="Submit">
</form>
问题:
当我单击"photoimg"浏览图像文件并选择时,JQuery"onchange"工作正常,并且"图像形式"正在提交,并且"ajaximage.php"被称为上传的图像正在DIV"预览"的主页上完美显示,而无需刷新主页。这部分工作得很好。
现在,如果我单击表单"reg"的"提交"按钮,而不是转到"处理.php",它将再次转到"ajaximage.php"。这就是问题所在。
如果我刷新主页,然后单击表单"reg"的"提交"按钮,那么它将转到"处理.php"。
我不确定我的问题是否清楚。提前感谢您的时间和帮助。
添加"ajaximage.php"代码供您参考:
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
.......
do all the image upload stuff & update database
.......
echo "<img src='uploads/".$actual_image_name."'>";
}
可能的演练。
- 检查更新目标div 后是否所有 html 标记都已正确关闭。
- 尝试在完成请求后将焦点从文件元素中移开。
- 检查控制台上的 jQuery 错误。
- 检查某些 ID 是否不冲突。