2013-08-14 3 views
0

Я хотел бы, чтобы страница одного из моих сайтов-сайтов, загружающих фотографии, сохраняла идентификаторы фотографий и т. Д., И когда пользователь нажимает на кнопку, похоже, будет запущен off to likes.php, который отправит подобное для instagram. Пример ниже:Простой запрос 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 выглядеть? или что было бы неплохо заглянуть, чтобы выполнить эту задачу, я просто хочу, чтобы вы нажали кнопку, созданную выше, и отправили идентификатор этой фотографии на lik.php

ответ

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()) обоих примеров, только чтобы избежать кэширования результата с помощью веб-браузера.

+0

Спасибо @dognose, у меня есть вопрос, если вы посмотрите на мой скрипт на его «эхо» - результат. Должно ли это делать что-то другое вместо этого, потому что в функции javascript, похоже, ожидается «200», где он «стоит», если xhr.status === 200 «Какую информацию мог бы получить мой инициирующий браузер от этой транзакции? – ModS

+1

@ModS Вы не можете повторить результат, не обновляя страницу, потому что полная HTML-страница уже создана. То, что вы можете сделать, - это определить «область», где вы хотите, чтобы сообщение всплывало, например '', а затем - когда вы обрабатываете успех - do 'document.getElementById ('messages') .innerHTML = 'Успех! Изображение было добавлено к вашим любимым. '; ' – dognose

+0

Я предполагаю, что я пытаюсь спросить, когда Likes.php получает результат 200, мне нужно« вернуть »200 или что-то другое для начальной страницы (страница с помощью кнопки), чтобы получить ответ? – ModS

1

onclick - это так называемый " обработчик события". Обычно они написаны на JavaScript.

Ваш пример JavaScript SendID.

Ваша упомянутая страница (like.php) должна быть посещена с использованием Ajax. Один из самых простых способов его реализации - использование jQuery.

Подробнее об этом в ссылках ниже.

Ссылки:

Смежные вопросы