Avatar billede weblance Nybegynder
26. maj 2004 - 15:42 Der er 17 kommentarer og
1 løsning

Lave liste i formular

Hej,

Jeg er ved at lave en formular hvor der skal sælges nogle kameraer. Jeg havde så tænkt mig at lave en liste med kameramærkerne. Når man så vælger et kameramærke, skal der være en anden liste nedenunder hvor modellet vælges. Det er kamera listen der bestemmer indholdet i model listen.
Hvordan laver man dette? Skal der noget specielt ASP eller PHP til at dette fungerer?
Avatar billede fennec Nybegynder
26. maj 2004 - 15:45 #1
Det er ikke nødvendig med ASP/PHP men det ville være smart sammen med en database.

laver lige et lille eks uden ASP/PHP. Tilbage om 5 min.
Avatar billede mm12010 Nybegynder
26. maj 2004 - 15:53 #2
Avatar billede fennec Nybegynder
26. maj 2004 - 15:54 #3
ellers er mit eks her.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<form name="MinForm" method="post" action="test.htm">

<select name="fabric" onchange="ShowHide()">
  <option value="">
  <option value="Pentax">Pentax
  <option value="Canon">Canon
</select>

<select id="Pentax" name="Pentax" style="display:none">
  <option value="MZ5">MZ5
  <option value="MZ30">MZ30
</select>

<select id="Canon" name="Canon" style="display:none">
  <option value="Canon1">Canon 1
  <option value="Canon2">Canon 2
</select>

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function ShowHide()
{
  document.MinForm.Pentax.style.display = 'none';
  document.MinForm.Canon.style.display = 'none';
 
  if(document.MinForm.fabric.value != "")
  {
    document.getElementById(document.MinForm.fabric.value).style.display = 'block';
  }
}
//-->
</SCRIPT>
</form>
</body>
</html>
Avatar billede roenving Novice
26. maj 2004 - 16:27 #4
-- og den forenklede udgave af mit script til de afhængige selects, som er præcis på 2 selects (havde desværre ikke gemt linket til spørgsmålet, hvor jeg tidligere har smidt den, så den kommer in extenso !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Smart selects</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link HREF="style/style.css" REL="stylesheet" TYPE="text/css">
<style type="text/css">
body{padding:10px;font-family:Tahoma,Verdana,Arial,sans-serif;text-align:center;background:#EBD3E2;line-height:1.5;overflow:hidden;}
</style>

<script language="javascript" type="text/javascript">
var arr = [
    ["Valg 1",
        ["2. valg 1 (1)","2. valg 2 (1)","2. valg 3 (1)"]],
    ["Valg 2",
        ["2. valg 1 (2)","2. valg 2 (2)","2. valg 3 (2)","2. valg 4 (2)"]],
    ["Valg 3",
        ["2. valg 1 (3)","2. valg 2 (3)","2. valg 3 (3)","2. valg 4 (3)","2. valg 5 (3)"]]
];
//alert(arr1[1][1])
function initSels(){
    createOpts(document.getElementById('sel1'));
}

function createOpts(sel){
    var s = new Array();
    var num = 0, txt = "arr";
    var ar = opt = null;
    var n = sel.selectedIndex;
    var args = createOpts.arguments.length;
    for(var i=1;args>i;i++){
        s[i-1] = document.getElementById(createOpts.arguments[i]);
        if(s[i-1]==sel)num=i;
    }
    if(args>1){
        if(s[num])sel = s[num];
        else return;
    }
    if(n==0&&args>1){
        for(i=num;args>i+1;i++){
            s[i].length = 0;
            opt = document.createElement('OPTION');
            s[i].appendChild(opt);
            opt.value = "";
            opt.text = "\74-- Vælg --";
        }
        return true
    };
    for(i=0;num>i;i++){
        txt+="["+(s[i].selectedIndex-1)+"][1]";
    }
    ar = eval(txt);
    sel.length = 0;
    opt = document.createElement('OPTION');
    sel.appendChild(opt);
  opt.value = "";
  opt.text = "-- Vælg --";
    for(i=0;ar.length>i;i++){
        opt = document.createElement('OPTION');
        sel.appendChild(opt);
        if(typeof ar[i] == 'object'){
          opt.value = ar[i][0];
          opt.text = ar[i][0];
        }else{
          opt.value = ar[i];
          opt.text = ar[i];
      }
    }
    if(args>num+2){
        for(i=num+1;args-1>i;i++){
            s[i].length = 0;
            opt = document.createElement('OPTION');
            s[i].appendChild(opt);
            opt.value = "";
            opt.text = "\74-- Vælg --";
        }
    }
}
</script>
</head>

<body onload="initSels()">
<form name="sels" action="http://roenving.users.whitehat.dk" onsubmit="return false;">
To afhængige selects:&nbsp;&nbsp;&nbsp;
<select name="sel1" id="sel1" onchange="createOpts(this,'sel1','sel2');">
<option value="" selected>Vis alle</option>
</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<select name="sel2" id="sel2">
<option value="" selected
>&lt;-- Vælg --</option>

</select></form>
</body>
</html>
Avatar billede weblance Nybegynder
26. maj 2004 - 18:12 #5
Det ser fint ud! Jeg har et PHP script som jeg har lavet til mine formularer, kan jeg på en eller anden måde bruge det?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>PHP mailform</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<? mail("mail@mail.dk", "Kontaktformular",
"Navn:  $navn
Adresse: $adresse
Postnr.: $postnr
By:      $by
Telefon: $telefon
Email:  $email
 
Besked:  $besked") ?>

<script type="text/javascript">

window.open('sendt.htm','sendt','width=200,height=150');

function myRefresh() {
    history.back(-1);
    setTimeout("myRefresh()",100);
}
setTimeout("myRefresh()",100);


</script>

</body>
</html>
Avatar billede roenving Novice
26. maj 2004 - 18:38 #6
Øh, hvordan hænger det sammen med de to selects ?-)
Avatar billede weblance Nybegynder
26. maj 2004 - 19:11 #7
Jeg bruger ovenstående PHP til at sende input fra formularen. Jeg skal også bruge inputtet fra de to selects. Jeg har prøvet at lave PHP'en om til dette:

<? mail("mail@mail.dk", "Kontaktformular",
"Kamera:  $sel1
Model:  $sel2
Navn:  $navn
Adresse: $adresse
Postnr.: $postnr
By:      $by
Telefon: $telefon
Email:  $email


...men det virkede ikke! Kan du hjælpe med det?
Avatar billede roenving Novice
26. maj 2004 - 19:17 #8
Hvordan sætter du alle felt-værdierne, for de selects skulle jo også komme igennem uden problemer !-)

-- du skal selvfølgelig sørge for at de befinder sig inden for samme form-tags, som resten af din formular !o]
Avatar billede weblance Nybegynder
26. maj 2004 - 19:25 #9
Hvad mener du med felt-værdier?
Avatar billede roenving Novice
26. maj 2004 - 19:26 #10
$sel1, $navn med flere ...
Avatar billede weblance Nybegynder
26. maj 2004 - 19:29 #11
Jeg har kaldt de forskellige felter disse navne og går derfor ud fra at jeg kan bruge de to navne på select boksene!

Undskyld - men jeg er lidt grøn i dette. Je har aldrig prøvet select-bokse på denne måde før!
Avatar billede roenving Novice
26. maj 2004 - 19:31 #12
Hvis du får fat i $navn, får du også fat i $sel1 ...
Avatar billede weblance Nybegynder
26. maj 2004 - 19:59 #13
Nej, der sker ingenting! Du kan lige få form koden at se her:

<form action="send_ex.php" method="get" name="kontaktform" id="kontaktform" onsubmit="return false;">
            <p>&nbsp;<select name="sel1" id="sel1" onchange="createOpts(this,'sel1','sel2');">
      <option value="" selected>Vis alle</option>
    </select>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <select name="sel2" id="sel2">
      <option value="" selected
>&lt;-- Vælg --</option>
 
  </select></p>
            <table width="425" height="282" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td width="193" class="formular_text">Navn:</td>
                <td width="10" rowspan="14"><img src="index_files/tom_10x10.gif" width="10" height="10"></td>
                <td width="10" rowspan="14"><img src="index_files/tom_10x10.gif" width="10" height="10"></td>
                <td width="10" rowspan="14"><img src="index_files/tom_10x10.gif" width="10" height="10"></td>
                <td width="10" rowspan="14"><img src="index_files/tom_10x10.gif" width="10" height="10"></td>
                <td width="208" class="formular_text">Besked:</td>
              </tr>
              <tr>
                <td><input name="navn" type="text" class="formulabox" id="navn" size="30"></td>
                <td rowspan="11" valign="top"><textarea name="besked" cols="30" rows="14" class="formulatextarea" id="besked"></textarea></td>
              </tr>
              <tr>
                <td class="formular_text">Adresse:</td>
              </tr>
              <tr>
                <td><input name="adresse" type="text" class="formulabox" id="adresse" size="30"></td>
              </tr>
              <tr>
                <td class="formular_text">Postnr.:</td>
              </tr>
              <tr>
                <td><input name="postnr" type="text" class="formulabox" id="postnr" size="30"></td>
              </tr>
              <tr>
                <td class="formular_text">By:</td>
              </tr>
              <tr>
                <td><input name="by" type="text" class="formulabox" id="by" size="30"></td>
              </tr>
              <tr>
                <td class="formular_text">Telefon:</td>
              </tr>
              <tr>
                <td><input name="telefon" type="text" class="formulabox" id="telefon" size="30"></td>
              </tr>
              <tr>
                <td class="formular_text">Email:</td>
              </tr>
              <tr>
                <td><input name="email" type="text" class="formulabox" id="email" size="30"></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td><div align="center">
                    <input name="Submit" type="submit" class="formulabutton" value="SEND">
                </div></td>
                <td><div align="center">
                    <input name="Reset" type="reset" class="formulabutton" value="NULSTIL">
                </div></td>
              </tr>
            </table>
          </form>
Avatar billede roenving Novice
26. maj 2004 - 20:32 #14
Som jeg forstår den måde, et serverside script aflæser, burde der ikke være det fjernest galt ...

-- forøvrigt har du ikke brug for 4 images for at lave 40 px bredde, du kan bare strække det ene (hvilket alt andet lige jo er lettere på enhver måde: mindre og lettere overskuelig kode og ingen risiko for at browseren bruger tid på at hente det samme billede flere gange, så båndbredden spares noget !-)

                <td width="10" rowspan="14"><img src="index_files/tom_10x10.gif" width="40" height="10"></td>
Avatar billede weblance Nybegynder
09. februar 2005 - 13:26 #15
roenving >> smid lige et svar! så får du dine pt
Avatar billede roenving Novice
09. februar 2005 - 13:42 #16
Oki '-)
Avatar billede roenving Novice
09. februar 2005 - 13:52 #17
Tak for point ;~}
Avatar billede weblance Nybegynder
09. februar 2005 - 13:55 #18
velbekomme
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