Avatar billede net-city Nybegynder
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
Avatar billede roenving Novice
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';"
Avatar billede net-city Nybegynder
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
Avatar billede net-city Nybegynder
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"
Avatar billede roenving Novice
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>
Avatar billede roenving Novice
30. januar 2005 - 14:19 #5
-- hov:

<input type="submit1" value="Indsend billeder" disabled="disabled">
Avatar billede net-city Nybegynder
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!
Avatar billede roenving Novice
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>
Avatar billede net-city Nybegynder
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.
Avatar billede net-city Nybegynder
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
Avatar billede roenving Novice
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>
Avatar billede net-city Nybegynder
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!
Avatar billede net-city Nybegynder
30. januar 2005 - 16:41 #12
-- og man kan ikke få borderen udenom billede når man har afmakeret alle igen. :-s
Avatar billede roenving Novice
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>
Avatar billede net-city Nybegynder
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
Avatar billede net-city Nybegynder
30. januar 2005 - 17:41 #15
Undskyld! den vil godt trykke submit
Avatar billede roenving Novice
30. januar 2005 - 17:54 #16
Måske tilføje ondblclick="return false;" ?-)
Avatar billede net-city Nybegynder
30. januar 2005 - 18:08 #17
Virker dog stadig ikke, man kan sagtens markere 2 slags tøj ..
Avatar billede net-city Nybegynder
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! !-)!
Avatar billede roenving Novice
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 '-)
Avatar billede net-city Nybegynder
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.
Avatar billede net-city Nybegynder
30. januar 2005 - 19:14 #21
også kalder med.

<?php
$toj = $_REQUEST['toj']; // calling
?>
Avatar billede net-city Nybegynder
30. januar 2005 - 19:31 #22
..hallo?
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