0

JSON GETリクエストから値を正常に抽出するPHPをいくつか作成しました(「teledu Pino」と呼ばれる外部サービスを介してAPIキーを使用したURLを介して)。

WordPress ページからその番号を更新するにはどうすればよいですか (ボタンを使用するか、x 秒ごとに自動的に更新するなど) (ページ全体を更新せずに)。変数を抽出するには PHP が必要なため、ページが読み込まれると 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 get 要求応答は、次の形式です。

{"status":403,"message":"キーがオフラインまたは無効です。","re​​sponse":[]}

オンラインの場合、最後に数値があります(最初のページの読み込み時にPHPコードで正常に抽出しています)。その PHP を JavaScript から呼び出す方法がわかりません。Web ページに表示される数字を取得する唯一の方法は、「ページと投稿で 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 - 電圧測定機能を持つコントローラー)。

どんなアイデアや助けも本当に感謝しています - ありがとう!!! :)

4

1 に答える 1

0
jQuery.ajax({
    url: 'url_to_php_script.php?key=' + key,
    type: "GET",
    dataType: "json",
    success: function(data) {
        // In here you can manipulate the json data
        // if you wanted to update a label you could
        // give it an id and do something like this:
        jQuery('#id').val(data[0].identifier)
    }
});

PHPスクリプトでは、そのキーですでに行っているロジックをすべて実行します。

$key = $_GET['key'];
// Logic and create array '$result'
$jSonData = json_encode($result);
header('Content-Type: application/json');
echo $jSonData;
于 2015-06-15T12:54:29.113 に答える