我正在以一个调用php文件将数据放入mysql的形式收集数据。它工作正常,但在数据进入数据库后,浏览器只显示一个空白页面,并在浏览器输入栏中显示行
http://nameofmyste.net/mfb1.php
就好像HTML将我发送到服务器上运行良好的php代码然后它就会卡住,并保持不变。我如何"回来"到我的HTML脚本?
call form action命令如下所示:
<form class="form-horizontal" role="form" action="mfb1.php" method="post" >
php代码存在于文件mfb1.php中,工作正常,只需终止标准结束&#34;?&gt; &#34;在末尾。
感谢您的帮助。
对于延迟回复问题表示抱歉,对于我对论坛的错误使用感到非常抱歉,我是新手并且正在学习...
我从原始问题开始做了一些工作,创建了一个非常简单的AJAX示例,该示例应该可以正常工作,但它并没有。这是带有js函数localform的HTML文件。它使用同步AJAX调用(第三个参数设置为&#34; false&#34;)来调用我的php代码,它也在下面。
它运行良好,我看到了短语&#34;我们做到了&#34;取代&#34;替换这里&#34; html页面上的文字,就像它应该的那样。但是,在半秒钟之内,&#34;我们做到了#34;消失,&#34;取代这里&#34;文字再次出现。
好像html代码再次从顶部运行。现在提交后,浏览器栏中的地址为
http://bruwptest.netne.net/Test%20Files/ajaxtester.html?
最后的问号是新的。
以下是代码:
ajaxtester.php:
<?php
echo "we made it";
?>
ajaxtester.html:
<!DOCTYPE HTML>
<html>
<body>
<h1>AJAX Tester</h1>
<p>Echo here from the server: <span id="text">replace here</span></p>
<form onclick="localform()">
<button type="submit" >Submit</button>
</form>
<script>
function localform() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "ajaxtester.php",false);
xhttp.send();
document.getElementById("text").innerHTML = xhttp.responseText;
}
</script>
</body>
</html>
我的问题是为什么html页面令人耳目一新并覆盖了&#34;我们做到了&#34;我刚刚从php那里写到了什么?
答案 0 :(得分:2)
好像HTML将我发送给了php代码
嗯,是的。这就是你指定的内容:
<form class="form-horizontal" role="form" action="mfb1.php" method="post" >
<!-- right here ----^ -->
然后它就会卡住
那么,mfb1.php
做什么?它产生了什么输出?如果它没有向浏览器呈现任何HTML,则不会向浏览器呈现HTML。
如果出现错误并且错误报告未打开,则可能没有有效的输出呈现给浏览器。在调试期间打开错误报告,检查日志等。
您可以在该脚本中输出您喜欢的任何HTML。除<?php ?>
标记之外的任何内容都只是直接发送到客户端,因此请放置您想要的任何HTML。
或者,在脚本的逻辑完成时,您还可以将用户重定向到另一个页面:
header('Location: somePage.html');
这将返回对用户浏览器的回复,表明它应该对somePage.html
发出新请求。
答案 1 :(得分:1)
您必须向客户端发送重定向location
到原始HTML页面;在php脚本的末尾,写一下:
header( "Location: YourHtmlFileUrlHere" );
exit;
如果命令位于脚本末尾,则exit
命令不是必需的。
请注意:如果在页面之前有任何输出
,则header
命令会失败