Avatar billede JJ77 Juniormester
14. februar 2006 - 11:30 Der er 9 kommentarer og
1 løsning

To selectbokse.

Kan man have to selectbokse under hinanden, hvor det den viser i nr. to boks er afhængig af det som vises i selectboks 1
Man skal kun kunne vælge select "gruppe" til at starte med, og derefter skal man kunne vælge "kategori", hvor det så er de kategorier som passer til gruppen som bliver vist.. Ved ikke om det kan lade sig gøre?


<select name="gruppe" size="1">
        <option>V&aelig;lg gruppe..</option>
        <option value="gruppe1">gruppe1</option>            <option value="gruppe2">gruppe2</option>
        <option value="gruppe3">gruppe3</option>    </select>

                           
<select name="kategori" size="1">
        <option>V&aelig;lg kategori..</option>
        <option value="kat1">kat1</option>
        <option value="kat2">kat2</option>
        <option value="kat3">Kat3</option>
    </select>
Avatar billede gizmo-gizmo Nybegynder
14. februar 2006 - 11:39 #1
Man kunne evt. lave noget a la:

<select name="gruppe" onclick="location.href='?gruppe='+this.selectedIndex;">
  <option>Vælg</option>
  <option value="1">gruppe 1</option>
</select><br>

<select name="undergruppe">
  <option>Vælg</option>
  <?php
  if (isset($_GET['gruppe']))
  {
    //Et eller andet kode der tilføjer underkategorier, afhængig af $_GET['gruppe'];
  }
  ?>
</select>
Avatar billede gizmo-gizmo Nybegynder
14. februar 2006 - 11:41 #2
ups...
<select name="gruppe" onclick="location.href='?gruppe='+this.selectedIndex;">
skulle have været:
<select name="gruppe" onchange="location.href='?gruppe='+this.selectedIndex;">
Avatar billede JJ77 Juniormester
14. februar 2006 - 11:43 #3
ok.. men hvordan og hvor skal de forskellige kategorier så stå..

altså
gruppe1
-underkategori 1 til g. 1
-underkategori 2 til g. 1

gruppe2
-underkategori 1 til g. 2
-underkategori 2 til g. 2
Avatar billede JJ77 Juniormester
14. februar 2006 - 11:49 #4
vil det være nemmere at lave det i javascript?
Avatar billede gizmo-gizmo Nybegynder
14. februar 2006 - 11:55 #5
Jo, hvis det ikke er noget dynamisk (med database osv.) så kan du lige så godt lave det i javascript. To sek, så strikker jeg lige et eksempel sammen.
Avatar billede gizmo-gizmo Nybegynder
14. februar 2006 - 12:00 #6
Prøv med:

<script type="text/javascript">
function add_undergruppe(valg)
{
  undergruppe = document.form.undergruppe;
   
  for(i=0; i < undergruppe.length; i++)
  {
    undergruppe.options[i] = null;
  }

  switch(valg)
  {
    case 1:
      undergruppe.options[0] = new Option('Undergruppe 1.1','1.1');
      undergruppe.options[1] = new Option('Undergruppe 1.2','1.2');
      undergruppe.options[2] = new Option('Undergruppe 1.3','1.3');
    break;
       
    case 2:
      undergruppe.options[0] = new Option('Undergruppe 2.1','2.1');
      undergruppe.options[1] = new Option('Undergruppe 2.2','2.2');
      undergruppe.options[2] = new Option('Undergruppe 2.3','2.3');
    break;
  }
}
</script>

<form name="form">
<select name="gruppe" onchange="add_undergruppe(this.selectedIndex);">
  <option>Vælg</option>
  <option value="1">gruppe 1</option>
  <option value="2">gruppe 2</option>
</select><br>

<select name="undergruppe">
</select>
</form>
Avatar billede JJ77 Juniormester
14. februar 2006 - 13:02 #7
Ok.. det virker faktisk rigtigt.. super... der er bare et problem, og det er det andet valideringsjava ikke virker mere.. kan du se hvad som er galt.. det står som det gør nedenstående.. det andet javascript virkede før jeg indsatte det andet:(


<script type="text/javascript">
function add_kategori(valg)
{
  kategori = document.form.kategori;
   
  for(i=0; i < kategori.length; i++)
  {
    kategori.options[i] = null;
  }

  switch(valg)
  {
    case 1:
      kategori.options[0] = new Option('kategori 1.1','1.1');
      kategori.options[1] = new Option('kategori 1.2','1.2');
      kategori.options[2] = new Option('kategori 1.3','1.3');
    break;
       
    case 2:
      kategori.options[0] = new Option('kategori 2.1','2.1');
      kategori.options[1] = new Option('kategori 2.2','2.2');
      kategori.options[2] = new Option('kategori 2.3','2.3');
    break;
  }
}
</script>
<script type="text/JavaScript" src="dk_pns.js"></script>
<script type="text/JavaScript">

function validering(f){
  if( f.gruppe.value==''){
      alert("Der skal vælges en gruppe!");
      f.gruppe.focus(); 
      return false;
  } 
  if( f.kategori.value==''){
      alert("Der skal vælges en kategori!");
      f.kategori.focus();   
      return false;
  }
  if( f.produkt.value==''){
      alert("Produkt skal udfyldes!");
      f.produkt.focus(); 
      return false;
  }
  if( f.pris.value==''){
      alert("Pris skal udfyldes!");
      f.pris.focus();
      return false;
  }
  if(form.email.value == '' && form.tlf1.value == ''){
      alert("Telefonnr. 1 eller e-mail skal udfyldes!");
      f.tlf1.focus();
      return false;
  }
  if( f.postNr.value==''){
      alert("Postnr. skal udfyldes!");
      f.postNr.focus();
      return false;
  }
  if( !pn["p"+f.postNr.value] ){
      alert("Postnr. synes ikke at eksistere!");
    f.postNr.focus();
    return false;
  }
  if(f.checkbox.checked==false){
      alert("Jeg har læst og forstået vedtægter for annoncering, skal afkrydses!");
      f.checkbox.focus();
      return false;
  }
  var elm = f.elements["imagefile[1]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
elm = f.elements["imagefile[2]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
elm = f.elements["imagefile[3]"];
if(!elm.value.toLowerCase().match(/\.jpe?g$|^$/)){
      alert("Du kan kun uploade billeder af typen jpg eller jpeg.\nLæs evt. under hjælp nederst !");
      elm.focus();
      form.mySubmit.disabled = false;
      return false;
}
  f.mySubmit.disabled = true;
  return true; 
}
</script>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
// End -->
</script>



<style>
  <!--
                .speciel{
                        color:#DD0000;
                        font:16 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
          <!--
                .mellem{
                        color:#000080;
                        font:15 px Times New Roman,helvetica,tahoma,Georgia,verdana,arial,Courier New;
                        text-decoration: none;
                        font-style: normal;                   
                        font-weight: bold;
                       
                }
        -->
        <!--
                .lille{
                        color:#000000;
                        font:15px Times New Roman,Arial,Helvetica,sans-serif;
                        text-decoration: none;
                }
        -->
          <!--
                .lilleLink{
                        color:#0000CD;
                        font:15px Times New Roman,Arial,Helvetica,sans-serif;
                        text-decoration: none;
                }
        -->
</style>
<style type="text/css">
body {
overflow-x: hidden;
overflow-y: scroll;
}
</style>
Avatar billede JJ77 Juniormester
14. februar 2006 - 13:08 #8
mine selectbokse se således ud

<td width="200"><span class="lille">Produktgruppe</span></td>
                                <td><form name="form">
                                        <select name="gruppe" onchange="add_kategori(this.selectedIndex);">
                                          <option>Vælg</option>
                                          <option value="1">gruppe 1</option>
                                          <option value="2">gruppe 2</option>
                                        </select><br>


<font color="#ee0000">*</font></td>
                            </tr>
                            <tr>
                                <td width="200"><span class="lille">Underkategori</span></td>
                                <td><select name="kategori">
                                <option value="0"> </option>
                                    </select></form>

<font color="#ee0000">*</font></td>
Avatar billede dejbjerg Nybegynder
15. februar 2006 - 14:35 #9
En anden løsning (med DB):

<HTML>
<BODY>
<?php

    $server    = "localhost";    // domæne
    $brugernavn = "******";    // brugernavn
    $password  = "******";      // password
                 
    mysql_connect($server, $brugernavn, $password)
    or die( "Unable to connect\n". mysql_error() );
   
    mysql_select_db("test")
    or die("Unable to select db ".mysql_error()."\n");

$id = $_GET['id'];

echo'<form name="testform">';
$q = mysql_query("SELECT * FROM grupper");
    echo"<select name=\"gruppe\" onChange=\"Load_id()\">";
  while($row = mysql_fetch_array($q)) {
          $selected = ($row['gruppe_id] == $id)? "SELECTED":"";
      echo"<option value=\"".$row['gruppe_id']."\"". $selected." >".$row['gruppe_navn']."</option>";
  }
    echo"</select>";


$q2 = mysql_query("SELECT * FROM varer WHERE vare_gruppe_id = $id");
    echo"<select name=\"vare\">";
  while($row = mysql_fetch_array($q2)) {
      echo"<option value=\"".$row['vare_id']."\">".$row['vare_navn']."</option>";
  }
    echo"</select></form>";
?>

<script type="text/javascript">
function Load_id()
{
var id = document.testform.gruppe.options[document.testform.gruppe.selectedIndex].value
var id_txt = "?id="
location = id_txt + id
}
</script>
</BODY>
</HTML>

//DB_DUMPS////////////////////////////

CREATE TABLE `grupper` (
  `gruppe_id` int(11) NOT NULL auto_increment,
  `gruppe_navn` varchar(60) NOT NULL default '',
  PRIMARY KEY  (`gruppe_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

INSERT INTO `grupper` VALUES (1, 'testgruppe1');
INSERT INTO `grupper` VALUES (2, 'testgruppe2');


CREATE TABLE `varer` (
  `vare_id` int(11) NOT NULL auto_increment,
  `vare_gruppe_id` int(11) NOT NULL default '0',
  `vare_navn` varchar(60) NOT NULL default '',
  PRIMARY KEY  (`vare_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;

INSERT INTO `varer` VALUES (1, 1, 'testvare1');
INSERT INTO `varer` VALUES (2, 1, 'testvare2');
INSERT INTO `varer` VALUES (3, 2, 'testvare3');
INSERT INTO `varer` VALUES (4, 2, 'testvare4');
Avatar billede dejbjerg Nybegynder
15. februar 2006 - 14:36 #10
smutter:
$selected = ($row['gruppe_id] == $id)? "SELECTED":"";
skal være:
$selected = ($row['gruppe_id'] == $id)? "SELECTED":"";
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