gpt4 book ai didi

Javascript调用php函数并接收返回结果

转载 作者:行者123 更新时间:2023-12-03 07:05:15 25 4
gpt4 key购买 nike

This post以获取服务器文件列表为例提供示例代码。这是我使用的代码:

<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>How to create form using jQuery UI</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/pepper-grinder/jquery-ui.css" media="screen" rel="stylesheet" type="text/css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(function() {
$.get('getfilename.php', { dir : '/ajax1/' }, function(data) {
// you should now have a json encoded PHP array

$.each(data, function(key, val) {
alert('index ' + key + ' points to file ' + val);

});
}, 'json');
alert ("ok");
});

</script>
</head>
<body>
<h1>Get file names... </h1>
</body>
</html>

获取文件名.php

$dir = $_REQUEST['dir'] ;
$dir = $_SERVER['DOCUMENT_ROOT'] . $dir;

$filesArray = array();
$Counter = 0;
$files = scandir($dir);

foreach ($files as &$file) {
if ($file!='.' && $file!='..' ) {
$filesArray[$Counter] = $file;
echo $filesArray[$Counter].'';
$Counter++;
}
}

echo json_encode($filesArray);

我的问题是 javascript 警报 alert('index ' + key + ' point to file ' + val); 无法在页面上显示任何内容。该脚本正在运行,因为我在 Firebug 控制台日志中收到了响应。

ajax.jsajax.phpindex.html["ajax.js","ajax.php","index.html"]

我需要对脚本进行哪些更改才能将此信息返回到 html 页面,以便我可以使用 JSON 进行进一步处理?

谢谢。

最佳答案

通过调试,您破坏了 PHP 中的 JSON 输出。因此,删除:

echo $filesArray[$Counter].''; 

此外,在任何输出之前,您应该添加 JSON header :

header('Content-Type: application/json');

最后,您的 PHP 文件应如下所示:

$dir = $_REQUEST['dir'] ;
$dir = $_SERVER['DOCUMENT_ROOT'] . $dir;

$filesArray = array();
$files = scandir($dir);

foreach ($files as &$file) {
if ($file!='.' && $file!='..' ) {
$filesArray[] = $file;
}
}
header('Content-Type: application/json');
echo json_encode($filesArray);

关于Javascript调用php函数并接收返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36852523/

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