0

Instagram サイトのページ 1 に写真をロードして写真 ID などを保存したいと思います。ユーザーが [いいね] ボタンをクリックすると、いいねが instagram に送信される likes.php に送信されます。以下の例:

<?php

require 'instagram.class.php';

$instagram = new Instagram(array(
  'apiKey'      => '******************',
  'apiSecret'   => '******************',
  'apiCallback' => 'http://****/****/index.php'
));

$token = // code that generates and properly stores token;
$instagram->setAccessToken($token);
$id =  $_GET['pic'];
$instagram->likeMedia($id);

if ($result->meta->code === 200) {
  echo 'Success! The image was added to your likes.';
} else {
  echo 'Something went wrong :(';
}


?>

例として、現在、いいねを送信しているページが次のようになっているとします。

 echo "<img src='like.jpg' class='like' onclick='SendID("4358734534_5435435")'>";

SendId はどのように見えるべきですか? または、このタスクを完了するために何を調べればよいでしょうか。上で作成したボタンをクリックして、その写真の ID を likes.php に送信できるようにするだけです。

4

2 に答える 2

1

onclickは、いわゆる「イベント ハンドラ」です。通常、これらは JavaScript で記述されます。

あなたの例は、SendIDというJavaScript関数です。

上記のページ (likes.php) には、Ajax を使用してアクセスする必要があります。これを実装する最も簡単な方法の 1 つは、jQuery を使用することです。

これについては、以下の参考文献を参照してください。

参考文献:

于 2013-08-14T16:49:49.450 に答える
1

サンプル:

echo "<img src='like.jpg' class='like' onclick='likePic(".$picId.",".$userId.")'>";

JQuery の使用http://jquery.com/ :

function likePic(picId, userId){

    $.get('path/to/like.php?picid=' + picId + '&userid=' + userId+ "&r=" + (new Date().getTime()), function(data) {
       if (data != "ok") {
         //maybe error handling, if like.php does not return "ok".
       }
    }
}

jQuery なし (プレーンな JavaScript)

function likePic(picId, userId){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", 'path/to/like.php?picid=' + picId + '&userid=' + userId+ "&r=" + (new Date().getTime()), true);
    xhr.onload = function (e) {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          if (xhr.responseText != "ok") {
             //maybe error handling, if like.php does not return "ok".
           }
        }
      }
    };
   xhr.send(null);
  }

どちらの"&r=" + (new Date().getTime())例も、Web ブラウザによる結果のキャッシュを避けるためのものです。

于 2013-08-14T16:50:39.823 に答える