如何在提交时打开同一页面?

时间:2013-12-26 23:09:08

标签: javascript php html

我有html表单,其动作是php脚本。 php代码基本上替换了该文件。 HTML代码:

<form name="input" action="//copy.php" method="POST" onsubmit="return alertbox();">                        

 <input type="hidden" name="path1" value=path to image 1/>
 <input type="hidden" name="path2" value='path to image 2' />
 <input type="submit" name="submit" value="Copy image"/>                

</form> 

Php代码:

if isset($_POST['submit']))
   {       
    $image1 = $_POST['path1']; 
    $image2 = $_POST['path2'];
    copy($image1, $image2);
    }       

&GT;

现在,当我单击“提交”时,会打开一个警告框,显示“文件已成功更新”,当我单击“确定”时,将加载空白页面。如何避免加载空白页?点击提交弹出消息后,我想留在同一页面上。

由于我没有看到“回答你自己的问题”选项,我在这里发布解决方案。 此链接POST form and prevent response为您提供问题的文字答案。虽然我通过代码提供答案。

所以基本上,它非常简单。只需加上

header("HTTP/1.0 204 No Response"); 

在php文件中,它将在所有浏览器上成功运行,无需打开新页面。这样可以避免使用jquery。

4 个答案:

答案 0 :(得分:0)

将动作留空。

<form method="post" action="">

然后检查是否使用isset功能

发布
if(isset($_POST)){
...
}

答案 1 :(得分:0)

这将使您在提交按钮后保持在同一页面上。

<form name="input" action="" method="POST" onsubmit="return alertbox();">

 <input type="hidden" name="path1" value=path to image 1/>
 <input type="hidden" name="path2" value='path to image 2' />
 <input type="submit" name="submit" value="Copy image"/>

</form>

但现在,您的图片可能无法加载。也许它会起作用,也许不会。如果没有,您将需要解析可能驻留在copy.php文件中的函数。既然我们不知道该文件中的内容,那么很难正确回答你的问题,但是......你可以试试这个“盲目”的镜​​头..

    if(isset($_POST['submit']))
       {       
        //include "//copy.php"; // this file probably contains functions, so lets load functions first IF needed.. 
        $image1 = $_POST['path1']; 
        $image2 = $_POST['path2'];
        copy($image1, $image2);

        } 

答案 2 :(得分:0)

您是否尝试更改输入中的类型:

 <input type="submit" name="submit" value="Copy image"/>

 <input type="button" name="submit" id="submit" value="Copy image"/> 
默认情况下,

<input type="button" />不会提交表单(请检查所有浏览器)。

<input type="submit">默认情况下,提交提交输入的标记。如果您仍想使用它,则必须使用event.preventDefault()覆盖输入提交/按钮的功能。在这种情况下,您需要:

$('#submit').click(function (event) {
      event.preventDefault();
     //Do whatever you need to 

   //Submit if needed: document.forms[0].submit();
});

有关详细信息,请参阅this link

答案 3 :(得分:0)

action="<?php echo $_SERVER['PHP_SELF']; ?>