Php JQuery更改(函数())提交表单两次

Php JQuery更改(函数())提交表单两次,php,jquery,image-uploading,Php,Jquery,Image Uploading,有一个用PHP编写的“创建概要文件”页面。有2个表单和1个JQuery函数 <script type="text/javascript" > $(document).ready(function(){ $('#photoimg').change(function(){ $("#imageform").ajaxForm({ target: '#preview'

有一个用PHP编写的“创建概要文件”页面。有2个表单和1个JQuery函数

<script type="text/javascript" >
    $(document).ready(function(){   

        $('#photoimg').change(function(){ 

            $("#imageform").ajaxForm({
                        target: '#preview'
            }).submit();
        });
    }); 
</script>

$(文档).ready(函数(){
$('#photoimg').change(function(){
$(“#imageform”).ajaxForm({
目标:“#预览”
}).submit();
});
}); 
这是图像显示的位置:

<div id='preview'></div>

表格-1:(用于上传个人资料图像)


表格2:(用于其他文本信息)


.... 一些正常的输入值。。。。
问题:

当我点击“photoimg”浏览图像文件并进行选择时,JQuery“onchange”工作正常,“imageform”正在提交,“ajaximage.php”被调用上传的图像在DIV“preview”的主页面上完美显示,而不刷新主页面。这部分工作正常

现在,如果我点击表单“reg”的提交按钮,而不是进入“process.php”,它将再次进入“ajaximage.php”。这就是问题所在

如果我刷新主页,然后单击表单“reg”的提交按钮,那么它将转到“process.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."'>";
}
if(isset($\u POST)和$\u服务器['REQUEST\u METHOD']==“POST”)
{
.......
完成所有图片上传和更新数据库
.......
回声“;
}
可能的演练

  • 检查目标div更新后是否正确关闭了所有html标记
  • 完成请求后,尝试将焦点放在文件外元素
  • 在控制台上检查jQuery错误
  • 检查某些ID是否不冲突
    你的问题很清楚..有什么建议@Ray吗?我已经在我的本地主机上试用了你的代码。。它就像一个符咒。。当我浏览图像文件时,jQuery.change事件正在工作,可以看到浏览器控制台中调用了ajaximage.php,当我单击提交时,页面被重定向到process.php,而不刷新页面!!您是否尝试过ajaxSubmit()…@Shaunak:我添加了ajaximage.php代码格式。请再试一次。
    <form class="form-signin" name="reg" role="form" action="process.php" method="post">
        .... some normal input values ....
       <input type="submit" value="Submit">
    </form>
    
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
     .......
      do all the image upload stuff & update database
     .......
     echo "<img src='uploads/".$actual_image_name."'>";
    }