【发布时间】:2019-12-31 12:53:09
【问题描述】:
我从 API 中获取了一些数据。数据采用 JSON 格式。 我用 PHP 获取数据并以 HTML 格式输出。
现在我想做的是,实现一个过滤机制来从 API 输出不同的内容。
例子:
我可以使用过滤器调用 API。我选择一个类型 = 1 的请求和另一个类型 = 2 的请求。这两个调用都返回一个带有预期数据的 JSON 对象。我在 PHP 中执行了一个 foreach 循环并从调用 1 中取出数据。我对数据 2 执行另一个循环。一开始我想显示数据 1,当我单击链接(例如获取数据 2)时,数据 2 应该加载和替换数据 1.
到目前为止一切顺利。我对 JavaScript 或 JQuery 没有太多经验。什么是正确的方法?从 API 调用中获取数据并直接使用 JS?有没有办法存储 PHP 输出并只加载所需的输出?
我没有太多代码要展示,因为这更像是建立一个基地。我喜欢了解如何解决这些问题并自己找到解决方案(仍在学习)。也许有人可以解释解决问题的步骤。
<?php
// Making an API call with POST as the method.
// The $filter1 variable holds a JSON Object with search terms for
// data 1
$results = new APIReader('POST', 'https://www.linktoapi.com/', $filter1, 'username:password');
?>
<!-- Links to filter the data output -->
<nav>
<a href="#data1">get data 1</a>
<a href="#data2">get data 2</a>
</nav>
<?php
// Loop through data 1
foreach ($results as $result) {
echo $result->ID;
}
?>
所以我为数据 2 执行了另一个 API 调用和循环。如何在无需重新加载页面的情况下加载数据 2 而不是数据 1?
提前致谢!
【问题讨论】:
-
Is there a way to store the PHP output and just load the output that is needed?。当然,您可以传递一个带有规格信息的对象,并在您的 PHP 代码中过滤数据,然后再将其发送回客户端。或者,如果您不想在 PHP 中执行此操作,您可以在APIReader()中创建一个实现,以通过客户端 JS 执行此操作。
标签: javascript jquery arrays json api