Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 12:20 Der er 21 kommentarer og
1 løsning

Kombineret javascript og php?

Halløj i gæve svende!

Hvordan skal jeg gøre hvis jeg skal oversætte en php-variabel til en javascript-variabel?

Jeg har et felt på siden der ved onMouseover på et billede skal udfyldes med tekst fra en database... Billedet og oplysningerne er hentet fra databasen ved hjælp af php og mySQL

Jeg er helt grøn i javascript!

På forhånd tak, Mesteren
Avatar billede thb Nybegynder
24. juni 2004 - 12:28 #1
<script>
variabel = <?=$phpvaribel?>;
</script>
Avatar billede mm12010 Nybegynder
24. juni 2004 - 12:29 #2
<form name="frm">
<input type="text" name="txt" value="">
</form>

<img src="<?= $billedsti ?>" alt="" onmouseover="document.forms['frm'].txt.value='<?= $tekst ?>';">
Avatar billede terrak Nybegynder
24. juni 2004 - 12:32 #3
Jeg tror du må forklare det lidt bedre, da du har fået 2 svar på forskellige ting - og noget kode ville ikke skade :)
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 12:36 #4
Jeg har lavet den som en table...

I de to felter hvor der skal stå oplysninger (kunde og info), står følgende:

<script language="javascript">
document.write(info);
</script>

Og jeg viser billedet således:

echo"<img src=".$row['thumb']." width='95' height='81'> ";

Kan i skrive det som ændringer og evt. tilføjelser til dette?
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 12:38 #5
sidens opbygning kan ses på eg-fjord.hhwl.dk!
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 12:39 #6
Sorry... eg-fjord.hhwl.dk/undersider/arbejder_javatest.php
Avatar billede mm12010 Nybegynder
24. juni 2004 - 12:51 #7
hvad er det der skal ske med den foromtalte tekst - skulle den indsættes i et form-felt?
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 13:04 #8
Nej den skal simpelthen bare skrives i det tabel-felt der er oprettet til den!

For eksempel hvis du kører musen over et billede at et hus, står der hus...

Men skal jeg f.eks. lave en function der oversætter variablen til javascript, som den thb har skrevet i første kommentar, og så viser det ovenstående document.write tag variablen?
Avatar billede mm12010 Nybegynder
24. juni 2004 - 13:11 #9
<tr>
  <td><img src="<?= $billedsti_1 ?>" alt="noget php tekst" onmouseover="document.getElementById('txt').innerHTML='<?= $tekst ?>';"></td>
  <td><img src="<?= $billedsti_ ?>" alt="hus" onmouseover="document.getElementById('txt').innerHTML='hus';"></td>
  <td id="txt">&nbsp;</td>
</tr>
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 13:16 #10
Nu fatter jeg først minus!
Avatar billede mm12010 Nybegynder
24. juni 2004 - 13:23 #11
det er muligvis mig der er helt galt på den :o)

antagelser:
  1) du har nogle billeder med tilhørende tekster som du hiver ud af en db
  2) disse billeder udskrives i en tabel
  3) du har en tom tabel-celle hvor du ønsker at få vist forskellige tekster afhængigt af hvilket billede musen er over

rigtigt ?-)
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 13:26 #12
Præcis...
Se evt. eg-fjord.hhwl.dk/undersider/arbejder_javatest.php for at forstå!
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 13:35 #13
Ved siden af der hvor der står Arbejder, er der to tomme felter...
Avatar billede mm12010 Nybegynder
24. juni 2004 - 13:44 #14
hvilket af dem skal teksten stå i?
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 13:51 #15
En tekst i hver... Det ene er til "kunde" og det andet til "info"...

Begge tekster er fra databasen
Avatar billede mm12010 Nybegynder
24. juni 2004 - 14:04 #16
indsætte dette i din <head>:
<script type="text/javascript">
function setTxt(t1,t2){
  document.getElementById("kunde").innerHTML=t1;
  document.getElementById("info").innerHTML=t;
  }
</script>

så ersttter du disse:
  <td width="75%" class="tekst">
  <script language="javascript">
  document.write(kunde);
  </script></td>
 
  <td class="tekst">
  <script language="javascript">
  document.write(info);
  </script></td>

med disse:
  <td width="75%" class="tekst" id="kunde">&nbsp;</td>

  <td class="tekst" id="info">&nbsp;</td>

og når du så udskriver dine billeder tilføjer du et kald til funktionen setTxt() sådan:
  echo"<img src='".$row['thumb']."' width='95' height='81' onmouseover='setTxt(\"".$KUNDETEKST."\",\"".$INFOTEKST."\");'>";

hvis cellerne skal tømmes når musen ikke længere er over billedet gør du sådan:
  echo"<img src='".$row['thumb']."' width='95' height='81' onmouseover='setTxt(\"".$KUNDETEKST."\",\"".$INFOTEKST."\");' onmouseout='setTxt(\"&nbsp;\",\"&nbsp;\");'>";
Avatar billede mm12010 Nybegynder
24. juni 2004 - 14:05 #17
manglede lige et 2-tal i funktionen - sådan:

function setTxt(t1,t2){
  document.getElementById("kunde").innerHTML=t1;
  document.getElementById("info").innerHTML=t2;
  }
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 14:14 #18
Jeg prøver, tak!
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 16:21 #19
Der sker stadig ingenting! Forstår det ikke helt! Serveren skal ikke kunne noget specielt for at kunne tage javascript, vel... Ligger det ikke i browseren?
Avatar billede roenving Novice
24. juni 2004 - 16:33 #20
Kig efter i Vis kilde om det er blevet rigtigt udskrevet ...

For du har helt ret i, at serveren ikke skal kunne noget specielt !-)

Bemærk dog at der ikke må forekomme linjeskift i teksterne, de skal erstattes af html-linjeskift: <br> ...
Avatar billede mesteren_selv Nybegynder
24. juni 2004 - 17:17 #21
Jeg fandt ud af det... Det var fordi der var skrevet $kunde og $info i stedet for $row['kunde'] og $row['info']... Men nu virker det... Skal du have point, mm12010?
Avatar billede mm12010 Nybegynder
24. juni 2004 - 18:48 #22
selv tak :o)
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