我正在收集数据,该形式调用php文件将数据放入mysql。 它工作正常,但是在数据进入数据库后,浏览器只显示一个空白页,在浏览器输入栏中是一行
http://nameofmyste.net/mfb1.php
就好像 HTML 将我发送到在服务器上运行良好的 php 代码,然后它就会卡住并停留在那里。 如何"返回"我的 html 脚本?
调用表单操作命令如下所示:
<form class="form-horizontal" role="form" action="mfb1.php" method="post" >
php 代码存在于文件 mfb1 中.php并且工作正常,只是在末尾以标准结束"?>"终止。
感谢您的帮助。
很抱歉延迟回到问题,非常抱歉我不正确地使用论坛,我是新手和学习......
自原始问题以来,我已经做了一些工作,并创建了一个非常简单的 AJAX 示例,该示例应该可以正常工作,但事实并非如此。 这是带有js函数localform的HTML文件。 它使用同步 AJAX 调用(第三个参数设置为"false"(来调用我的 php 代码,这也是下面的代码。
它运行良好,我看到短语"我们成功了",它取代了 html 页面上的"在此处替换"文本,就像它应该的那样。 但是,在半秒钟内,"我们成功了"消失,"在此处替换"文本再次出现。
就好像 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 页面刷新并覆盖我刚刚从 php 写的"我们做到了"?
就好像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
请求。
您必须向客户端发送指向原始HTML页面的重定向location
;在PHP脚本的末尾,编写:
header( "Location: YourHtmlFileUrlHere" );
exit;
如果命令位于脚本末尾,则 exit
命令不是必需的。
请注意:如果页面中之前有任何输出,则header
命令失败