30. januar 2005 - 00:17
Der er
21 kommentarer og 1 løsning
Et billede i en form
Hey, jeg søger en exp til at lave et således script: Jeg har feks. 4 forskellige billedere som ser sådan herud: <input type="image" name="<?php echo "$row[haar]"; ?>" src="haar/<?php echo "$row[haar]"; ?>" border="0"> <input type="image" name="<?php echo "$row1[hovede]"; ?>" src="haar/<?php echo "$row1[hovede]"; ?>" border="0"> <input type="image" name="<?php echo "$row2[hovede]"; ?>" src="hovede/<?php echo "$row2[hovede]"; ?>" border="0"> <input type="image" name="<?php echo "$row3[sko]"; ?>" src="sko/<?php echo "$row3[sko]"; ?>" border="0"> Jeg vil lave sådan når man trykker på et / flere af de billedere skal der komme en border uden om, sådan man ved den er taget / selected! Bare efter SKAL man have makert alle 4 billedere før man kan gå til formens action, hvis i forstår. /mvh net-city 2005
Annonceindlæg fra Barco
30. januar 2005 - 12:20
#1
Hrm, det er jeg ikke sikker på, at jeg forstår, men du kan da prøve: onclick="this.style.border='2px solid blue';"
30. januar 2005 - 14:00
#2
Altså jeg har en php sætning som henter alt fra haar i databasen (der er ca. 20 i indholdet) Så laver jeg: <input type="image" name="<?php echo "$row[haar]"; ?>" src="haar/<?php echo "$row[haar]"; ?>" border="0"> Med den onclick du har lavet til mig, og det er præsic det rigtige, men man skal KUN markert én gang, og ikke alle sammen
30. januar 2005 - 14:05
#3
Og.. selve <input onclick="this.style.border='1px solid black';" type="image" name="<?php echo "$row1[toj]"; ?>" src="toj/<?php echo "$row1[toj]"; ?>" border="0"> og de andre 3 SKAL være makerert, før man kan trykke på "Ændre" / "submit"
30. januar 2005 - 14:18
#4
Så f.eks. <script type="text/javascript"> function enableSubmit(pic){ var num = 0; var f = pic.form; var e = f.elements; for(i=0;e.length>i;i++){ if(e[i].type == 'image' && e[i].style.borderWidth == "1px") num ++; } if(num == 4) f.submit1.disabled = false; } </script> <form> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row[haar]"; ?>" src="haar/<?php echo "$row[haar]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row1[hovede]"; ?>" src="haar/<?php echo "$row1[hovede]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row2[hovede]"; ?>" src="hovede/<?php echo "$row2[hovede]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row3[sko]"; ?>" src="sko/<?php echo "$row3[sko]"; ?>" border="0"> <input type="submit1" value="Indsend billeder"> </form>
30. januar 2005 - 14:19
#5
-- hov: <input type="submit1" value="Indsend billeder" disabled="disabled">
30. januar 2005 - 14:47
#6
Ligenu ser min kode sådan her ud: <script type="text/javascript"> function enableSubmit(pic){ var num = 0; var f = pic.form; var e = f.elements; for(i=0;e.length>i;i++){ if(e[i].type == 'image' && e[i].style.borderWidth == "1px") num ++; } if(num == 4) f.submit1.disabled = false; } </script> <form name="skift" method="post" action="?andre=ok"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row[haar]"; ?>" src="haar/<?php echo "$row[haar]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row1[toj]"; ?>" src="toj/<?php echo "$row1[toj]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row2[hovede]"; ?>" src="hovede/<?php echo "$row2[hovede]"; ?>" border="0"> <input onclick="this.style.border='1px solid black';enableSubmit(this);return false;" type="image" name="<?php echo "$row3[sko]"; ?>" src="sko/<?php echo "$row3[sko]"; ?>" border="0"> <input type="submit" name="submit1" value="Ændre" style="font-family:Tahoma; font-size:9; color:black; background-color:rgb(153,153,153); margin:1; border-width:1px; border-color:black; border-style:solid;" disabled="disabled"> </form> Og det virker altså ikke, man kan marker alle sammen hvis det skulle være, og man submitten er hele tiden disablet!
30. januar 2005 - 15:03
#7
Hrm, det vidste jeg ikke, at input type="image" ikke blev regnet som elementer i en form, så i stedet: <script type="text/javascript"> function enableSubmit(pic){ var num = 0; var f = pic.form; var e = f.getElementsByTagName("INPUT"); for(i=0;e.length>i;i++){ if(e[i].type == 'image' && e[i].style.borderWidth == "1px") num ++; } if(num == 4) f.submit1.disabled = false; } </script>
30. januar 2005 - 15:05
#8
Jeps, perfekt. Men, man kan stadig makere feks. 4 af hår og 7 tøj. også 2 sko og 4 hoveder.
30. januar 2005 - 15:06
#9
Hvis du kunne lave sådan man KUN kan markere én af: <input src="haar/.."> <input src="sko/.."> <input src="toj/.."> <input src="hovede/.."> også sådan man kan "selecte" det markerte væk igen ved at klikke på billedet igen
30. januar 2005 - 15:18
#10
onclick="this.style.border=(this.style.borderWidth!='')?'':'1px solid black';enableSubmit(this);return false;" -- og så kunne man f.eks. <script type="text/javascript"> function enableSubmit(pic){ var num = [0,0,0,0]; var f = pic.form; var e = f.getElementsByTagName("INPUT"); for(i=0;e.length>i;i++){ if(e[i].type == 'image' && e[i].style.borderWidth == "1px") if(e[i].src.indexOf('haar/')>-1) num[0]++; else if(e[i].src.indexOf('sko/')>-1) num[1]++; else if(e[i].src.indexOf('toj/')>-1) num[2]++; else if(e[i].src.indexOf('hovede/')>-1) num[3]++; } if(num[0]==1&&num[1]==1&&num[2]==1&&num[3]==1) f.submit1.disabled = false; } </script>
30. januar 2005 - 16:39
#11
perfekt, men når man så afmarkere alle igen, kan man sagtens "submitte" igen uden nogle er markert. Og man kan stadig godt vælge feks. 2 slags hår. Man skal KUN kunne tage <input type="image" src="haar/.."> <input type="image" src="sko/.."> <input type="image" src="toj/.."> <input type="image" src="hovede/.."> Hvis du forstår!
30. januar 2005 - 16:41
#12
-- og man kan ikke få borderen udenom billede når man har afmakeret alle igen. :-s
30. januar 2005 - 16:54
#13
Ja, jeg frygtede, at det var den form for funktionalitet, du ville have ... <input onclick="enableSubmit(this);return false;" type="image" name="<?php echo "$row[haar]"; ?>" src="haar/<?php echo "$row[haar]"; ?>" border="0"> <script type="text/javascript"> var num = [false,false,false,false]; function enableSubmit(pic){ if(pic.src.indexOf('haar/')>-1){ if(!num[0]) pic.style.border = "1px solid black"; else pic.style.border = ""; num[0] = !num[0]; } if(pic.src.indexOf('sko/')>-1){ if(!num[1]) pic.style.border = "1px solid black"; else pic.style.border = ""; num[1] = !num[1]; } if(pic.src.indexOf('toj/')>-1){ if(!num[2]) pic.style.border = "1px solid black"; else pic.style.border = ""; num[2] = !num[2]; } if(pic.src.indexOf('hovede/')>-1){ if(!num[3]) pic.style.border = "1px solid black"; else pic.style.border = ""; num[3] = !num[3]; } pic.form.submit1.disabled = !(num[0]&&num[1]&&num[2]&&num[3]); } </script>
30. januar 2005 - 17:40
#14
Den er der næsten! Man kan kun klikke engang på hvert! rigtigt godt, men hvis man dobbelklikker på hår nummer 2 feks, kan man godt :-s Og den gider ikke trykke submit
30. januar 2005 - 17:41
#15
Undskyld! den vil godt trykke submit
30. januar 2005 - 17:54
#16
Måske tilføje ondblclick="return false;" ?-)
30. januar 2005 - 18:08
#17
Virker dog stadig ikke, man kan sagtens markere 2 slags tøj ..
30. januar 2005 - 18:09
#18
Hvis du lige smider svar og giver mig et resultat på man ikke skal kunne markere flere end én slags tøj, sko, hovede, hår så er pointsne dine! !-)!
30. januar 2005 - 18:26
#19
Tjah, en masse checks klarer jo problemet: <script type="text/javascript"> var num = ['0','0','0','0']; function enableSubmit(pic){ if(pic.src.indexOf('haar/')>-1){ if(num[0]=='0'){ pic.style.border = "1px solid black"; num[0] = pic; }else if(pic==num[0]){ pic.style.border = ""; num[0] = '0'; } } if(pic.src.indexOf('sko/')>-1){ if(num[1]=='0'){ pic.style.border = "1px solid black"; num[1] = pic; }else if(pic==num[1]){ pic.style.border = ""; num[1] = '0'; } } if(pic.src.indexOf('toj/')>-1){ if(num[2]=='0'){ pic.style.border = "1px solid black"; num[2] = pic; }else if(pic==num[2]){ pic.style.border = ""; num[2] = '0'; } } if(pic.src.indexOf('hovede/')>-1){ if(num[3]=='0'){ pic.style.border = "1px solid black"; num[3] = pic; }else if(pic==num[3]){ pic.style.border = ""; num[3] = '0'; } } pic.form.submit1.disabled = !(num[0]!='0'&&num[1]!='0'&&num[2]!='0'&&num[3]!='0'); } </script> -- og bemærk, at funktionen klarer det hele nu !-) <input onclick="enableSubmit(this);return false;" type="image" name="<?php echo $row[haar]; ?>" src="haar/<?php echo $row[haar]; ?>" border="0"> -- og velbekomme '-)
30. januar 2005 - 19:13
#20
Hmm, hvordan kan man så "$request" den? Har prøvet med: <input onclick="enableSubmit(this);return false;" type="image" name="toj" value="<?php echo "$row1[toj]"; ?>" src="toj/<?php echo "$row1[toj]"; ?>" border="0"> altså hvor jeg kalder <input'en toj også laver en value, men den giver intet resultat.
30. januar 2005 - 19:14
#21
også kalder med. <?php $toj = $_REQUEST['toj']; // calling ?>
30. januar 2005 - 19:31
#22
..hallo?
Vi tilbyder markedets bedste kurser inden for webudvikling