我已经编写了一些 PHP,它成功地从 JSON GET 请求中提取了一个值(通过一个名为“teledu Pino”的外部服务通过带有 API 密钥的 URL)。
如何从我的 WordPress 页面刷新该数字(通过按钮或每 x 秒自动等)(不刷新整个页面)?因为提取变量需要 PHP,一旦页面加载就不再活动。所以我需要使用ajax(最好使用jquery)从javascript调用PHP。我明白了。但是在尝试了这个站点和其他站点的相关解决方案很多天之后,我仍然不知道如何正确获取代码,以及需要单独的文件以及将它们准确放在哪里。由于我使用的是 WordPress,也许我需要编写一个插件?必须有一种简单的方法来为此使用 ajax。
这就是我所知道的:我必须将 jquery 排入队列。(因为 Wordpress 已经有 jquery)> wp_enqueue_script('jquery');
我必须用 javascript 编写一个对 PHP 的简单 ajax 调用(不知道我是否可以在我的 HTML 页面上执行此操作,或者它必须是上传到模板文件夹的单独文件(?)
PHP 文件看起来像这样:
ob_start();
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'http://us01.proxy.teleduino.org/api/1.0/328.php?k={MY_API_KEY_HERE}&r=getAnalogInput&pin=14');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
$Aresults = curl_exec($curl_handle);
curl_close($curl_handle);
$Adata = json_decode($Aresults, true);
$Amess = $Adata['message'];
$Astat = $Adata['status'];
$Amoisture = $Adata['response']['values'][0];
$Atime = $Adata['response']['time'];
echo $Amoisture;
echo " : ";
echo $Astat;
echo " : ";
echo $Amess;
if ($Amess == "Key is offline or invalid.") {
echo "[div class=\"cooo\"] Spike is sleeping [/div]";
}
等等等等
这个 PHP 文件需要用一个唯一的名称保存,然后 ajax 可以调用它,但我似乎无法正确使用它。
来自“teleduino”的 JSON 获取请求响应采用以下形式:
{"status":403,"message":"密钥离线或无效。","response":[]}
当它在线时,它最后有一个数字值(我在初始页面加载时使用 PHP 代码成功提取)。我只是不知道如何从 javascript 中调用那个 PHP。我可以让网页上显示的数字的唯一方法是安装“允许在页面和帖子上使用 php”插件,然后在页面上编写 PHP 代码。但当然,我需要一种方法来使用 javascript/ajax 刷新该数字。
发送 get 请求的 url 如下:http://us01.proxy.teleduino.org/api/1.0/328.php?k= {MY_API_KEY_HERE}&r=getAnalogInput&pin=16 (pin=16 是 micro 上的 pin -具有电压测量的控制器)。
任何想法或帮助都将不胜感激 - 谢谢!:)