我有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。
答案 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']; ?>