Avatar billede julemandenb Nybegynder
13. oktober 2011 - 19:20 Der er 4 kommentarer og
1 løsning

placering af else sætning - hvor?

Hej eksperten...

Jeg har denne stump kode:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">
  <head>
    <title>My Feed Dialog Page</title>
  </head>
  <body>
    <div id='fb-root'></div>
    <script src='http://connect.facebook.net/en_US/all.js'></script>
    <p><a onclick='postToFeed(); return false;'>Post to Feed</a></p>
    <p id='msg'></p>

    <script>
      FB.init({appId: "118207754930130", status: true, cookie: true});

      function postToFeed() {

        // calling the API ...
        var obj = {
          method: 'feed',
          link: 'http://coolboom.dk',
          picture: 'http://fbrell.com/f8.jpg',
          name: 'CoolBoom.dk TEST',
          caption: 'TEST BY COOLBOOM',
          description: 'Vi tester lige :).'
        };

        function callback(response) {
          document.getElementById('msg').innerHTML = "Det virker!!! :)";
        }

        FB.ui(obj, callback);
       
      }
   
    </script>
  </body>
</html>
_________________________________


Ved min callback function ( function callback(response) { )

Ønsker jeg at placer en else sådan at hvis callback(response) er true udskriver den "Det virker" og hvis den er false udskriver den "Det virker ikke" Jeg har ikke selv forstand på JavaScript så håber der er en flink gut her inde :)

//Mikkel Bering
13. oktober 2011 - 19:29 #1
Det må vel være noget med (ikke testet)

function callback(response)
{

  if(response)  document.getElementById('msg').innerHTML = "Det virker!!! :)";

  else document.getElementById('msg').innerHTML = "Det virker ikke!!! :)";
}
Avatar billede julemandenb Nybegynder
14. oktober 2011 - 08:36 #2
Tak Christian det virker :)
- Kan du så forklare mig hvordan jeg kalder en PHP function?

Hvis det virker kald til share_finish();
Hvis det ikke virker kald til share_not_finish();

- Jeg har prøvet følgende:
___________________________________________________________________

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="https://www.facebook.com/2008/fbml">
  <head>
    <title>My Feed Dialog Page</title>
  </head>
  <body>
      <div id='fb-root'></div>
    <script src='http://connect.facebook.net/en_US/all.js'></script>
    <p><a onclick='postToFeed(); return false;'>Post to Feed</a></p>
    <p id='msg'></p>

    <script>
      FB.init({appId: "YOU APP ID", status: true, cookie: true});

      function postToFeed() {

        // calling the API ...
        var obj = {
          method: 'feed',
          link: 'http://coolboom.dk',
          picture: 'http://fbrell.com/f8.jpg',
          name: 'CoolBoom.dk TEST',
          caption: 'TEST BY COOLBOOM',
          description: 'Vi tester lige :).'
        };

        function callback(response) {
          document.getElementById('msg').innerHTML = "Det virker!!! :)";
        }

        FB.ui(obj, callback);
       
        function callback(response)
        {
       
          if(response)  share_finish();
       
          else share_not_finish();
        }

        FB.ui(obj, callback);
      }
   
    </script>
  </body>
</html>

<?php
function share_finish()
{
?>
<script language="javascript">
alert("Det virker")
</script>
<?php
}


function share_not_finish()
{
?>
<script language="javascript">
alert("Det virker ikke")
</script>
<?php   
}
?>
________________________________________________________________

Men det virker ikke rigtig?

//Mikkel
14. oktober 2011 - 10:48 #3
Jeg er glad for at min foreslåede løsning til det stillede spørgsmål virkede.  Du er så klar til at takle det næste problem, nemlig hvad du gør med resultatet af funktionen callback i det videre program forløb.  Jeg foreslår, at det bliver emnet for et frisk spørgsmål.  Så får det opmærksomheden af alle Ekspertens medlemmer, og ikke kun af mig og de der måtte følge denne tråd.  Jeg opretter så et svar for mit indlæg til det oprindelige spørgsmål som jeg håber du vil acceptere.  Er det 'fair enough?'

Men jeg kan da diskutere princippet.  Du må kalde funktionen callback fra et eller andet sted i en kode.  Du kunne så returnere resultatet af funktionen, om response er true eller false, til den kode og bruge det til en beslutning om at kalde share_finish() eller share_not_finish().  Hvis den kode der kalder funktionen callback nu ser således ud:

$response = [et eller andet];
callback($response);

så kunne du rette det til noget i retning af:

$virker = callback($response);
if $virker{share_finish()}
else {share_not_finish()}

og så skal callback funktionen naturligvis rettes til at returnere om $response er true eller false, såsom:

function callback(response)
{
if (response) return true
else return false
}

Men, nu jeg ser på det, så behøver du vel slet ikke funktionen callback.  I den kode der genererer $response og som nu kalder callback kunne du jo bruge værdien af $response direkte, såsom:

$response = [et eller andet];
if($response) share_finish();
else share_not_finish();

Jeg har ikke testet noget af dette, og syntaksen halter muligvis (det er længe siden jeg selv var i gang med de sager - husk, at dette kun er en diskussion af principperne).

Så jeg foreslår, at du undersøger hvor værdien af $response, true eller false, opstår og så på det sted i koden bruger denne værdi til at beslutte hvilke af funktionerne share_finish() eller share_not_finish der skal fortsættes med.  Hvis du går i stå, så et frisk spørgsmål, hvor du viser hvor langt du selv er kommet.
14. oktober 2011 - 10:49 #4
Det skulle have været et svar.  Det kommer her.
Avatar billede julemandenb Nybegynder
14. oktober 2011 - 11:32 #5
1000 tak for din hjælp. det satte mig så igang igen. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester