gpt4 book ai didi

php - 如何将 PHP 数组返回给调用它的 javascript 函数

转载 作者:行者123 更新时间:2023-12-02 19:03:13 25 4
gpt4 key购买 nike

..要尝试另一种方式..

到另一个页面的链接对我来说不是很有用。我已经查看了其中的大多数,但无法根据我的需要调整它们。

我不熟悉 ajax 或 jQuery。

我真的可以使用一些有关此特定问题的详细代码示例的帮助。提前致谢..

我有这段代码名为:JSON_generator.php

<?php
require_once 'EasyWebFetch.php';

$callback = isset($_GET['callback']) ? $_GET['callback'] : 'mymap.weatherhandler';
$station = isset($_GET['rid']) ? $_GET['rid'] : 'FWS';
$product = isset($_GET['product']) ? $_GET['product'] : 'NCR';
$nframes = isset($_GET['frames']) ? $_GET['frames'] : 10;

if (strlen($product) != 3 || strlen($station) != 3) { exit; }

// fetch directory listing
$wf = new EasyWebFetch;
if (!$wf->get("http://radar.weather.gov/ridge/RadarImg/$product/$station/")) {
print $wf->getErrorMessage();
exit;
}
$page = $wf->getContents();
// echo $page."\n\n";

$size = preg_match_all( "/href=\"({$station}[\d_]+{$product}\.gif)\"/" , $page, $match);
$files = $match[1];

$nframes = min(count($files), $nframes);
$files = array_slice($files, -$nframes);

echo $callback."\n(\n{\ndirectory:\n[\n";
for ($i=0; $i < $nframes; $i++) {
echo "\"ridge/RadarImg/$product/$station/$files[$i]\",\n";

}
echo "]\n}\n)\n;"

?>

当像这样从命令行调用时......

http://example.com/mypath/JSON_generator.php?&?callback=CallBack&product=NCR&rid=JAX&frames=5

但我真正需要的是让这些 .gif 路径/文件/名称从首先调用 php 的 JavaScript 函数中“可用”。** 它们需要作为数组中的项目进行访问。

我无法弄清楚执行此操作的 javascript 函数调用..

..类似这样但显然不是这个..

function Feed (whichproduct, whichsite) {
var filelist = [];
var siteimages = filelist("http://example.com/mypath/JSON_generator.php?&product=whichproduct&rid=whichsite&frames=5");
..then..
//alert (filelist [1]); .. should return something like "ridge/RadarImg/NCR/JAX/JAX_20130128_2354_NCR.gif"
}

显然,我是一个初学者,所以完整的答案对我来说比仅仅代码片段更有值(value)。

底线:

我需要一个 JavaScript 函数,它可以从 php 脚本中提取每个 .gif 名称,并将它们带回到 JavaScript“var”中,以便我可以在 html 文件的其他位置使用。

谢谢,丹尼斯

编辑..编辑已删除..弄清楚了..

最佳答案

我将使用 jQuery 来回答最初,因为这使事情变得非常简单,但我稍后将使用普通 Javascript 实现进行更新。

在您的 Feed 函数中,使用 jQuery 方便的 $.ajax 方法进行 AJAX 调用。

function Feed (whichproduct, whichsite) {
$.ajax({
"url": "http://mysite.com/mypath/JSON_generator.php?&product=whichproduct&rid=whichsite&frames=5"
"type": "GET",
"dataType": "json",
"success": function( data, status, xhr ){
alert( data[1] );
}
});
}

在 PHP 中,在格式良好的 PHP 数组上使用 json_encode (只需推送到 array() 而不是直接回显 url 和逗号等)。

最后,打印 json_encode( $yourArray )

Vanilla Javascript 更新:

我不会在这里复制(大量的)javascript,而是直接链接到一个不错的 SO answer by @Richard H 。如果您不打算使用 jQuery,希望这对您有所帮助!

关于php - 如何将 PHP 数组返回给调用它的 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574740/

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