Avatar billede nicocarlos Nybegynder
17. marts 2004 - 23:12 Der er 29 kommentarer og
1 løsning

Loade et billede som er valgt ved hjælp af <option></option>

Hejsa. jeg vil gerne loade et billede og lidt tekst nedenunder min <option> tag, er der nogle som kan give et eksempel på hvordan det kan gøres?

på forhånd tak
Avatar billede grunken Nybegynder
17. marts 2004 - 23:31 #1
Sådan eksempelvis :o)

<html>
<head>
<script type="text/javascript">

  bil = [];
  bil[0] = "billede1.jpg";
  bil[1] = "billede2.jpg";
  bil[2] = "billede3.jpg";
  bil[3] = "billede4.jpg";
  bil[4] = "billede5.jpg";
  bil[5] = "billede6.jpg";

  tekst = [];
  tekst[0] = "billede1.jpg blaba";
  tekst[1] = "billede2.jpg afsad";
  tekst[2] = "billede3.jpg gugug";
  tekst[3] = "billede4.jpg safh";
  tekst[4] = "billede5.jpg dgshds";
  tekst[5] = "billede6.jpg fahsaf";

  function kaskelot(hval){
  document.getElementById('billede').src=bil[hval];
  document.getElementById('tekst').innerHTML=tekst[hval];
  }
</script>

</head>
<body>
<select onchange="kaskelot(this.options[this.selectedIndex].value);">
<option value="">vælg billede</option>
<option value="0">Billede1</option>
<option value="1">Billede2</option>
<option value="2">Billede3</option>
<option value="3">Billede4</option>
<option value="4">Billede5</option>
<option value="5">Billede6</option>
</select>

<br/>
<div id="tekst">&nbsp;</div>
<img src="" id="billede">

<body>
</html>
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 00:20 #2
det ser rigtig godt ud, men hvad nu hvis jeg skal have sat det sammen med mit php, kan du hjælpe med det?
DU kan ihvertfald se mit php her:
print "<p>Vælg et monster at dræbe:<br>";
      print "<form action='slaymonster.php' method='post'>";
      print "<select name='monstername' length='20'>";
      $monster1="SELECT * from km_monsters order by skill asc";
      $monster2=mysql_query($monster1) or die("Could not select Monster");
      while ($monster3=mysql_fetch_array($monster2))
      {
        print "<p><option>$monster3[name]</option>";
      }
      print "</select><br>";
      print "<p><input type='submit' name='submit' value='Kill Monster'></form><br><br>";

fordi jeg henter min options i mySQL..
Avatar billede grunken Nybegynder
18. marts 2004 - 00:35 #3
Det kan jeg nok da øjeblik skal lige have det ind i min notepad, men jeg har lige et par spørgsmål :o)

hedder billedet den skal vise "$monster[name].jpg", og henter du teksten fra $monster3[tekst]!
Avatar billede grunken Nybegynder
18. marts 2004 - 01:04 #4
stilhed før stormen :o)

ganske utestet burde det komme til at se sådan ud :o)

<?php

//include sqladgang :o)

$monster1="SELECT * from km_monsters order by skill asc";
$monster2=mysql_query($monster1) or die("Could not select Monster");
$int=0;

echo "<script type=\"text/javascript\">
arr = [];
";

while ($monster3=mysql_fetch_array($monster2))
{
  echo "arr[".$int."]=\"".$monster3[name]."|".$monster3[tekst].\"";
  int++;
}

echo "
  function init(){
  for(i=0;i<arr.length;i++)
    document.forms[0].monstername.options[i]= new Option (arr[i].split(\"|\")[0],i);
  }
  document.forms[0].monstername.onchange = new Function(\"kaskelot(this.options[this.selectedIndex].value)\");

  function kaskelot(hval){

  str = arr[hval].split(\"|\");

  document.getElementById('billede').src=str[0];
  document.getElementById('tekst').innerHTML=str[0];
  }
";   


echo "
<body onload=\"init();\">
<p>Vælg et monster at dræbe:<br>

<form action=\"slaymonster.php\" method=\"post\">";

  <select name=\"monstername\" length=\"20\">
  </select>

  <input type=\"submit\" name=\"submit\" value=\"Kill Monster\">
</form><p>
</body>
";
?>
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 10:46 #5
ok jeg tester det lige om lidt, var gået i seng i går, sry.. :D men jeg er tilbage nu!
Avatar billede bamzen Nybegynder
18. marts 2004 - 12:19 #6
Det er godt nok tæt på dit spørgsmål fra i går...
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 12:32 #7
bamzen, det er det muligvis, men igår viste jeg ikke at javascript skulle bruges og at man ikke bare kunne lave det sådan som jeg ville med php og html...
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 12:36 #8
ja billedet jeg henter er $monster[name].jpg og ja jeg henter teksten fra $monster3[tekst]!, jeg kan ik se at du henter dem i det script, du skrev, men det gjorde du jo sikkert heller ikke da du ikke kendte svaret ;D
Avatar billede bamzen Nybegynder
18. marts 2004 - 12:43 #9
jeg skrev ikke din præcise kode, da jeg ikke kendte navnene på dine felter...

men jo, skrev koden - rigtigt nok...
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 14:35 #10
nej bamzen, jeg ved godt i forsøgte at hjælpe men jeg forstod det ikke, vil du prøve at hjælpe mig nu hvor du kender mine felter, jeg skal nok give flere point hvis det er...
Avatar billede bamzen Nybegynder
18. marts 2004 - 14:46 #11
Jeg skal nok hjælpe, og jeg behøver ikke flere point...

men det bliver først senere (ca kl 21), er på arbejde nu, og sidder hos en kunde...
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 14:54 #12
det er bare helt i orden, jeg kigger lige ind forbi ved 21-tiden så.
Avatar billede bamzen Nybegynder
18. marts 2004 - 20:58 #13
er igang med at kode lidt
Avatar billede bamzen Nybegynder
18. marts 2004 - 21:15 #14
Dette burde kunne gøre tricket, forudsat at du ændrer de informationer mht til feltnavne og forbindelsen til din mysql server...

Scriptet her burde samtidig preloade dine billeder, så de skifter hurtigere...

Mere kan man dårligt hjælpe uden at have adgang til din db og dine billeder....

Fang mig evt på gragans@hotmail.com... så kan vi justere løsningen sammen,,, og poste den endelige løsning her for fremtidig reference...


<html>
<head>
<script type="text/javascript">


monster = new Array()


function aMonster(n,txt){
    this.n=n
    this.txt=txt
    this.img = new Image()
    this.img.src = n+'.jpg'
}




<?
mysql_connect("localhost","dituserid","ditpass") or die("Kunne ikke forbinde til sql serveren");
mysql_select_db("dindb") or die("kunne ikke vaelge tabel i database");

// Find resultater i tabellen

$findMonsters = mysql_query("SELECT * from km_monsters order by skill asc") or die("Could not select monster");

while($d = mysql_fetch_array($findMonsters)){
echo "monster[monster.length] = new aMonster(\"".$data['name']."\",\"".$data['tekst']."\");\n";
}

?>
function initMonsters(){
df=document.forms[0]
for(i=0;i<monster.length;i++){
df.monstername.options[df.monstername.options.length] = new Option(i,monster[i].n)
}
changeMonster(0)
}

function changeMonster(monsterid){
    document.images["myImg"].src=monster[i].img.src
    document.getElementById('myTxt').innerHTML = monster[i].txt
}

</script>
</head>
<body>
<form action="slaymonster.php" method="post">
<table border=0 cellspacing=0 cellpadding=2>
<tr><td>V&aelig;lg et monster</td><td><select name="monstername" onChange="changeMonster(this.options[this.selectedIndex].value)"></select></td></tr>
<tr><td><img src="" id="myImg" name="myImg"></td><td id=myTxt></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="submit" value="Kill monster"></td></tr>

</table>
</form>

<script type="text/javascript">
initMonsters()
</script>

</body>
</html>
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 21:32 #15
okay tester lige.. :D
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 21:40 #16
mit webhotel er nede i øjeblikket, så tester så hurtigt som muligt
Avatar billede bamzen Nybegynder
18. marts 2004 - 21:47 #17
k
Avatar billede nicocarlos Nybegynder
18. marts 2004 - 23:09 #18
Du kan se siden her:
http://www.alt-muligt.dk/test/monstertest.php
der er vist noget galt.. jeg har ikke lagt billederne ind i test tingen men det virker ikke alligevel, for den henter overhovedet ikke noget endnu..
Avatar billede bamzen Nybegynder
19. marts 2004 - 00:28 #19
Nu må jeg desvære i seng...

Det ser ud til at du har flyttet rundt på koden, at dømme efter output!?????
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 10:22 #20
det eneste jeg har flyttet rundt på er:
<?
mysql_connect("localhost","dituserid","ditpass") or die("Kunne ikke forbinde til sql serveren");
mysql_select_db("dindb") or die("kunne ikke vaelge tabel i database");

// Find resultater i tabellen

$findMonsters = mysql_query("SELECT * from km_monsters order by skill asc") or die("Could not select monster");

while($d = mysql_fetch_array($findMonsters)){
echo "monster[monster.length] = new aMonster(\"".$data['name']."\",\"".$data['tekst']."\");\n";
}

?>

som jeg har sat op i toppen. Men det brude da ikke lave det store om, vel?
Avatar billede bamzen Nybegynder
19. marts 2004 - 10:27 #21
JO!

Det er en FATAL ændring!
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 12:26 #22
ups jeg ændrer det lige tilbage...
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 12:29 #23
okay det hjalp lidt men den henter stadig ikke monsternavn fra min db :(
Avatar billede bamzen Nybegynder
19. marts 2004 - 13:41 #24
Jeg ved ingenting om hvordan din mysql tabel ser ud,, så kan ikke sige hvad du laver af fejl der....

men check om du har felterne name og tekst i den tabel der du henter data fra

ellers skal du ændre i dette så det passer

echo "monster[monster.length] = new aMonster(\"".$data['name']."\",\"".$data['tekst']."\");\n";


der havde jeg i forvejen lavet en fejl kan jeg se

den skal være

echo "monster[monster.length] = new aMonster(\"".$d['name']."\",\"".$d['tekst']."\");\n";

Måske det er nok.... Sorry...

når jeg går ind på adressen ser det ud til at du har smidt en

session_start() ind i koden???

hvis du skal det, skal den være ALLERØVERST på siden sådan her

<?
session_start();
?>
<html>
<head>
bla bla bla bla
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 14:04 #25
ja nu hjælper det på det, men den henter tal i stedet for navnene og derfor kan den ikke finde billeder, tror jeg..
min mySQL tabel er km_monters derinde har jeg:
ID auto_incre...
Name
og lidt flere som vi ikke skal bruge...
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 14:14 #26
km_monsters
Avatar billede bamzen Nybegynder
19. marts 2004 - 14:46 #27
du sagde du både havde navn og tekst????

Måske er det bedre at have id på dine billeder, da navnene virker som om de har mellemrum og meget andet (ikke så godt på web) ting..
Avatar billede nicocarlos Nybegynder
19. marts 2004 - 15:20 #28
Jeg har navn, tekst(beskrivelse) og billedet skal den hente ud fra navn..Sry hvis det var forvirende før, men den henter ikke navnet. kun et nummer...
Avatar billede bamzen Nybegynder
19. marts 2004 - 21:41 #29
prøv at ret $d['name']." til $d['Navn']." så hvis feltet hedder navn... det kan ske at den alt efter platformen dit webhotel kører på er case sensitiv (kender forskel på store og små bogstaver)
Avatar billede nicocarlos Nybegynder
20. marts 2004 - 16:39 #30
det hjalp ikke :(
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