Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przycisk Lubie to i własna operacja
Forum PHP.pl > Forum > Po stronie przeglądarki
awerd95
Witajcie,

Wczoraj wieczorem zostałem zmuszony do napisania pewnej aplikacji na FB.
Wszystko pięknie aż do momentu gdy potrzebuję aby podczas naciskania przycisku lubię to wykonywał się kod PHP.
Z pomocą przyszedł mi ajax, funckję onclick wywołuje:

  1. <blablabla onclick="getData('mysql.php', 'info_box')"></blabl>


Taki sposób działa, lecz gdy nadam onclick na diva przycisku Lubię to, wtenczas kod się wywołuje ale gdy kliknę ciut na lewo od przycisku a nie na nim, na innych elementach działa lecz tu facebook chce mnie zdenerować.

Wie ktoś jak naprawić to aby po kliknięciu Lubie to wywoływało mi funkcję getData() ? a jeśli nie to może pomocne stanie się moje podpytanie do tematu:
jak z poziomu js dobrać się do kodu wygenerowanego w iframe?

Pozdrawiam
wookieb
poczytaj o facebook javascript api, tam jest zdarzenie "like".
awerd95
Chyba znalazłem lecz niestety nie działa

  1. FB.Event.subscribe('edge.create', function() {
  2. alert('You liked the URL: ');
  3. }
  4. );


Edit: Chyba działa, ale jak mu się chce, raz reaguje raz nie
wookieb
Upewnij się czy nie rzucasz słów na wiatr. Prędzej ty robisz coś źle, niżeli to nie działa.
awerd95
Już sam nie wiem, nie umie albo co

Podgląd: http://greatsite.pl/fb/

Aplikacja miała na celu przypisywać lajkowiczów do grup od których dowiedziała się o stronie pewnej fundacji

Kod:
  1. <?php
  2. require('facebook.php');
  3.  
  4. $facebook = new Facebook(array(
  5. 'appId' => '',
  6. 'secret' => '',
  7. 'cookie' => true,
  8. ));
  9.  
  10. $uid = $facebook->getUser();
  11. $me = null;
  12. if ($uid) {
  13. try {
  14. // pobieramy informacje o użytkowniku
  15.  
  16. $me = $facebook->api('/me');
  17. } catch (FacebookApiException $e) {
  18. error_log($e);
  19. }
  20. }
  21. ?>
  22. <!doctype html>
  23. <html xmlns:fb="http://www.facebook.com/2008/fbml">
  24.  
  25. <head>
  26. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  27. <title>Konkurs</title>
  28. <div id="fb-root"></div>
  29.  
  30.  
  31. <script language=javascript>
  32. var object = false;
  33. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  34. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  35. function getData(dataSource, divID) {
  36. if (object.readyState==4 || object.readyState==0) {
  37. var obj = document.getElementById(divID);
  38. object.open("GET", dataSource);
  39. object.onreadystatechange = function() {
  40. if (object.readyState == 4 && object.status == 200) obj.innerHTML= object.responseText;
  41. }
  42. object.send(null);
  43. }
  44. }
  45.  
  46.  
  47. </script>
  48. <style type="text/css">
  49. .fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
  50. display: none !important;}
  51. </style>
  52. </head>
  53. <body id="dd">
  54. <div id="fb-root"></div>
  55. <script>
  56. window.fbAsyncInit = function() {
  57. // inicjalizacja JavaScript SDK
  58. FB.init({
  59. appId : '<?php echo($facebook->getAppId()); ?>',
  60. session : <?php echo(json_encode($session)); ?>,
  61. status : true,
  62. cookie : true,
  63. xfbml : true // włączamy parsowanie XFBML
  64. });
  65.  
  66. // jeśli użytkownik zaloguje się, odświeżamy stronę
  67. FB.Event.subscribe('auth.login', function() {
  68. window.location.reload();
  69. });
  70. };
  71.  
  72. (function() {
  73. var e = document.createElement('script');
  74. e.src = document.location.protocol + '//connect.facebook.net/pl_PL/all.js';
  75. e.async = true;
  76. document.getElementById('fb-root').appendChild(e);
  77. }());
  78.  
  79. FB.Event.subscribe('edge.create', function() {
  80. alert('You liked the URL: ');
  81. }
  82. );
  83.  
  84. </script>
  85.  
  86. <?php
  87.  
  88. if(!empty($_POST['group'])){
  89.  
  90. $_GET['step'] = 2;
  91. $_SESSION['group'] = $_POST['group'];
  92.  
  93. }
  94. ?>
  95. <div style="width: 500px; height: 400px; overflow: hidden; font-family: Tahoma; font-size: 13px; text-align: center;">
  96. <?php if($_GET['step'] == 0 OR $_GET['step'] == 1){ ?>
  97.  
  98. <form action="" method="post" style="padding: 0; margin: 0;">
  99. <div style="width: 500px; background: #fff; height: 250px; padding-top: 75px;">
  100.  
  101. <span style="font-size: 24px; font-weight: bold; color: #333;">Krok 1.</span><br/><br/>
  102. <span style="font-size: 16px; font-weight: bold; color: #222;">Wybierz grupę którą chcesz wesprzeć swoim "Lubię to"</span><br/><br/> <br/><br/>
  103. <select name="group" style="width: 150px;">
  104. <option selected="selected">Grupa 1</option>
  105. <option>Grupa 2</option>
  106. <option>Grupa 3</option>
  107. <option>Grupa 4</option>
  108. <option>Grupa 5</option>
  109. </select>
  110. </div>
  111.  
  112. <div style="width: 500px; background: #3b5998; height: 50px; padding-top: 25px;">
  113. <button type="submit" style="width: 50px; height: 30px;">Dalej</button>
  114. </div>
  115. </form>
  116.  
  117.  
  118. <?php }elseif($_GET['step'] == 2){
  119.  
  120.  
  121.  
  122. ?>
  123. <div class="test" style="width: 500px; background: #fff; height: 250px; padding-top: 75px;">
  124.  
  125. <span style="font-size: 24px; font-weight: bold; color: #333;" >Krok 2.</span><br/><br/>
  126. <span style="font-size: 16px; font-weight: bold; color: #222;">Kliknij "Lubię to"</span><br/>
  127. <span id="info"></span>
  128. </div>
  129.  
  130. <div style="width: 500px; background: #3b5998; height: 50px; padding-top: 25px;">
  131.  
  132. <fb:like href="https://www.facebook.com/pages/GreatSitepl/177365909002550" send="false" layout="button_count" width="200" show_faces="false" font="tahoma"></fb:like>
  133.  
  134. </div>
  135.  
  136. <?php } ?>
  137.  
  138. </div>
  139. </body>
  140. </html>


W celu testów jest tam moja strona, która nie jest upubliczniona ale cel jest aby to zadziałało i mógłbym uruchomić aplikację na stronie fundacji w celu rozpoczęcia konkursu.
Całość nie skończona, wszystko czeka na rozwiązanie przechwytu że polubiono stronę.
wookieb
Zajrzyj w konsolę błędów to primo.
Kod
FB is not defined

Wrzuć ten kod, w funkcji wywołującej sięna zdarzenie załadowania facebook SDK.
awerd95
Problem rozwiazny na innym forum. Wielkie dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.