gpt4 book ai didi

php - 我可以获得实时 PHP 数据以显示在 jquery 对话框中吗?

转载 作者:行者123 更新时间:2023-11-28 00:07:06 25 4
gpt4 key购买 nike

我正在尝试结合两种想法,但我不确定它们是否相互兼容。

想法 1:让 php 脚本运行命令(例如:ping)并在 Web 浏览器中提供命令的实时结果。

想法 2:出现一个 jQuery 对话框,打开后运行 php 脚本并在对话框中提供实时结果。

想法 1 很容易实现 (ping.php):

<?php
header('Content-Type: text/html; charset=utf-8');
set_time_limit(1800);
ob_implicit_flush(true);
ob_end_flush();

$exe_command = 'C:\\Windows\\System32\\ping.exe -n 10 google.com';

$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout -> we use this
2 => array("pipe", "w") // stderr
);
flush();

$process = proc_open($exe_command, $descriptorspec, $pipes);
echo "<pre>";

if (is_resource($process))
{
while ($s = fgets($pipes[1])) {
print $s;

flush();
}
}
echo "</pre>";
?>

如果我在浏览器中打开 ping.php,我会得到一行一行的响应 YAY!!

想法 2 给我带来了麻烦。我可以打开对话框,但数据直到 php 完成工作后才会出现。这可能是 ajax 的本质,所以我可能在正确的方法上偏离了目标。

这是我的 index.html 中的 javascript:

<script language="Javascript">

function testGetScript() {
$.getScript("./cgi-bin/ping.php", function(data) {
var divResults = document.getElementById('pingMe');
divResults.innerHTML = data;
});
}

function initDialogs() {
$('#testDialog').dialog({
autoOpen: false,
width: 800,
title: "PINGING.....",
modal: true,
open: function(event, ui) {
testGetScript();
},
close: function() {
$(this).dialog("close");
},
buttons: [
{text: "Done", click: function() {
$(this).dialog("close");
}}
]
});

}

$(document).ready(function(){
initDialogs();

$("*[class='btn']").button().click(function() {
$('#testDialog').dialog('open');
});

</script>

有人对这是否可能有任何想法吗?如果是这样,您对如何实现这一点有什么建议吗?

最佳答案

使用jQuery.get()请求您的 PHP 页面,getScript用于加载 javascript 文件。

$.get('yourpage.php', {}, function(data, status, xhr) {
// all done, get your content from the data variable.
});

如果您在 get 调用的正文中显示弹出窗口而不是从对话框中调用 get,则对话框将在包含所有数据后显示。

编辑:AJAX 似乎在显示任何信息之前等待 readyState 4。 PHP flush 似乎发送 readyState 为 3。You will need to listen for that and fill in the responseText .

有一些潜在的错误可能需要 disabling compressionsetting the content type to application/octet-stream .

关于php - 我可以获得实时 PHP 数据以显示在 jquery 对话框中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com