【发布时间】:2019-06-06 14:08:50
【问题描述】:
我实际上正在使用需要一些时间来执行的 PHP 脚本。 它每秒都会回显字符串,比如说 1 分钟。 我想要做的是将这些字符串“回显”到我的 HTML 页面中。 当我在我的页面中调用我的函数时,它运行良好,它在页面加载时执行,并且每秒回显一个字符串:
<h1> Here is my func </h1>
<?php my_func();?>
但我不想在发送表单时显示此内容(因为我将使用表单作为函数的参数)。 所以我尝试了这样的事情:
<form method="POST" action="">
<input name='param' value='param'type='text'/>
</form>
<script>
$.ajax({
url:'phpfileWithMyFunc.php',
data: {
param : param
},
dataType: 'json',
type:'post'
)}.done(function (data){
$('body').append(data);
});
</script>
这个根本不起作用,不知道为什么。
所以我尝试了其他方法,$.post:
<form method="POST" action="">
<input name='param' value='param'type='text'/>
</form>
<script>
$('#form').submit(function () {
$.post('phpfileWithMyFunc.php', { param: param }, function(result) {
$('tbody').append(result);
});
return false;
});
</script>
最后,这个可行,但我的 php 文件必须完成他的执行(在我的情况下等待 1 分钟),才能产生我的结果。
所以我在这里问,当我在我的 HTML 文件“内部”执行我的 PHP 文件时,有什么办法可以做,所以每次我回显一个字符串时,它都会立即显示在我的 HTML 上(在我的情况下是每秒),而不是等待我的脚本结束?
感谢您的帮助。
【问题讨论】:
-
浏览器(显示 HTML 的地方)没有连接到服务器(PHP 的地方),就像驱动程序连接到汽车一样。这种连接更像是操作无人机——操作员只是远程连接到无人机。这意味着您不能指望控制器上的开关会立即影响无人机——信号必须发送到无人机,然后无人机做出响应。这是您的情况:服务器(您的 PHP 代码)必须将信号(回显消息)发送到浏览器。这是可以做到的。调查 Web Sockets 的使用。
-
谢谢,你的回答很清楚。我想我越来越了解 php 和 javascript 如何协同工作
-
您可能想查看socket.io
标签: javascript php html ajax echo