Avatar billede zkov82 Nybegynder
07. maj 2009 - 15:33 Der er 5 kommentarer og
1 løsning

Facebook applikation i PHP med dynamisk opdatering

Jeg sidder og laver et projekt som indeholder en facebook applikation lavet i php.

Jeg sidder nu med et problem:

Jeg skal lade folk tage nogle valg via checkboxes om hvad der interesserer dem og jeg vil gerne have at den kan opdatere min IFrame dynamisk, altså uden at brugeren behøver at trykke "submit" el lign.

Er der nogen der ved om det kan lade sig gøre?

mvh.
Morten
Avatar billede webweaver Praktikant
07. maj 2009 - 23:38 #1
Næppe i ren PHP.
Der slipper du vidst ikke uden om JavaScript eller lignende ...
Avatar billede simtex Nybegynder
08. maj 2009 - 02:09 #2
Du kan gøre noget ala det her:
<iframe id="iramme"></iframe>
<p><a href="java script://" onclick="document.getElementById('iramme').src='http://www.google.com';">hej</a></p>
Avatar billede zkov82 Nybegynder
13. maj 2009 - 10:50 #3
Simtex....kan du uddybe det lidt?

Jeg er sgu rimlig rookie udi facebook og javascript.
Avatar billede simtex Nybegynder
16. maj 2009 - 00:49 #4
Du bliver nok nødt til at læse lidt, men det her bør få dig startet. Hvis du har spørgsmål er du velkommen til at vende tilbage.

Lav en php fil: response.php
<?php
switch($_GET['str'])
{
    case 'kvinde':
        echo 'sexy mamma!';
        break;
    case 'mand':
        echo 'sexy stud!';
        break;
    default:
        echo 'alien';
        break;
}
?>

Lav en HTML fil der via Javascript kalder dit php script og  redirecter en iframe, jeg har bare sat innerHTML på en div her for lethedens skyld. Du kan se i mit tidligere svar hvordan du redirecter en iframe vha. js.

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
<!--
var xmlHttp;
function getMessageResponse(str)
{
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
    catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
      catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
 

    xmlHttp.onreadystatechange=state_Change;
    var url="response.php";
    url=url+"?str="+ str;
    url=url+"&sid="+Math.random();
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
    document.form1.username.value = str;
  }
   
function state_Change() {
    if(xmlHttp.readyState==4)
  {
        if (xmlHttp.status == 200)
        {
            document.getElementById("response").innerHTML = xmlHttp.responseText;
        } else {
            document.getElementById("response").innerHTML = "error";
        }
 
   
  }
}
-->
</script>
</head>
<div id="response">
</div>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="checkbox" name="id2" id="id2" onclick="getMessageResponse('kvinde');"/>
  kvinde</label>
  <label> <br />
  <input type="checkbox" name="id1" id="id1" onclick="getMessageResponse('mand');" />
    mand</label>
</form>
</body>
</html>

Det du skal ligge mærke til er onclick metoden på dine check boxes der kalder getMessageResponse med den parameter du ønsker at sende til dit php script. Du kan så evt. lade php huske hvad der er blevet svaret vha. session eller i en database og agere i forhold til det. Det gør jeg ikke i dette simple eksempel. Du skal også lave noget input validering hvis du ikke ønsker at kalde php scriptet både når checkboxen sættes og slettes.

Du kan se det i aktion på http://sjkp.dk/ex/test.html

Held og lykke!
Mvh
Simon Pedersen
Avatar billede simtex Nybegynder
16. maj 2009 - 00:51 #5
ignore denne linie:    document.form1.username.value = str;
den skulle ikke have været med.
Avatar billede zkov82 Nybegynder
16. maj 2009 - 08:38 #6
Det ser godt ud.
Mange tak for det
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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