Avatar billede Slettet bruger
27. januar 2003 - 12:37 Der er 14 kommentarer og
1 løsning

Select box

Hejsa...

Jeg har en side, hvor indholdet af select boksene hentes i en mysql database, men kan jeg få den 3. select boks til at hente indholdet alt efter hvad der bliver valgt i nr 2?

Det skal være så ledes at når man ex vælger hardware viser den kun de varegrupper som hører under det, men så skal den jo sende en variable videre? og refreshe eller hva?

<form action="add_groups_submit.php" method="post" class="form">

OPRET VAREGRUPPE<br>
<br>

<table border="1">

<tr>
<td>&nbsp;&nbsp;Title:</td>
<td><input type="text" name="title" maxlength="32" class="felt"></td>
</tr>

<tr>
<td>&nbsp;&nbsp;Gruppe type:</td>
<td>
  <select name="group_type" class="pulldown">
    <option value="">Vælg</option>
    <option value="Kategori">Kategori</option>
    <option value="Varegruppe">Varegruppe</option>
  </select>
</td>
</tr>

<tr>
<td>&nbsp;&nbsp;Hvis varegruppe, i vælg kategori:</td>
<td>

<?

// Connecter til DB

include('../functions/config.php');

$mySQL_tabl = "ishop_groups";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

// Ser om der er oprettet nogle kategorier

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE group_type = 'kategori' ORDER BY title");

if (mysql_num_rows($result) > 0)

{

// Hvis der er resultat

echo "<select name=\"category_id\" class=\"pulldown\">\n";
echo "<option value=\"0\">Vælg</option>\n";

while($a = mysql_fetch_array($result))
{

  echo "<option value=\"" . $a['group_id'] . "\">" . $a['title'] . "</option>\n";

}

  echo "</select>\n";

// Hvis der ikke er resultat
}
else
{

echo "&nbsp;&nbsp;Der er ikke oprettet nogle kategorier!\n";

}
// Lukker DB'en.

mysql_close();

?>

</td>
</tr>

<tr>
<td>&nbsp;&nbsp;Hvis undervaregruppe, i vælg varegruppe:</td>
<td>

<?

// Connecter til DB

include('../functions/config.php');

$mySQL_tabl = "ishop_groups";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

// Ser om der er oprettet nogle kategorier

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE group_type = 'Varegruppe' ORDER BY title");

if (mysql_num_rows($result) > 0)

{

// Hvis der er resultat

echo "<select name=\"subgroup_id\" class=\"pulldown\">\n";
echo "<option value=\"0\">Vælg</option>\n";

while($a = mysql_fetch_array($result))
{

  echo "<option value=\"" . $a['group_id'] . "\">" . $a['title'] . "</option>\n";

}

  echo "</select>\n";

// Hvis der ikke er resultat
}
else
{

echo "&nbsp;&nbsp;Der er ikke oprettet nogle varegrupper!\n";

}
// Lukker DB'en.

mysql_close();

?>



</td>
</tr>


<tr>
<td colspan="2"><br>
&nbsp;&nbsp;<input type="submit" name="Send" value=" Add " class="knap"></td>
</tr>


</table>

</form>

</BODY>
</HTML>
Avatar billede whatever Nybegynder
27. januar 2003 - 12:39 #1
Hvorfor ikke hente det hele ud, og smide i det i en javascript array?
Avatar billede whatever Nybegynder
27. januar 2003 - 12:40 #2
F.eks. som dette: http://www.efusion.it/exp/302058.php

Det henter alle amter og kommuner ud af databasen. Smider dem i en javascript array. Når man vælger et amt, opdateres boks nr. 2 med kommunerne i det valgte amt.
Avatar billede Slettet bruger
27. januar 2003 - 12:41 #3
Pt henter den jo det hele ud, men der er jo ingen grund til at den viser varegrupperne for software hvis man har valg hardware som kategori...

Hvordan med JS'et?
Avatar billede whatever Nybegynder
27. januar 2003 - 12:43 #4
Nej, det er jo klart. Men i mit eksempel hentes det hele ud i en Javascript array, så skal siden ikke opdateres når man vælger en ny kategori.
Avatar billede Slettet bruger
27. januar 2003 - 12:49 #5
Nej... det er jo klart en fordel. Er det noget du kan kode ind i det ovenstående?
Avatar billede whatever Nybegynder
27. januar 2003 - 12:54 #6
Avatar billede whatever Nybegynder
27. januar 2003 - 12:54 #7
Glem lige den link jeg sendte. Det var en fejl :-)

Jeg kigger på det om lidt. Skal lige have noget at spise.
Avatar billede Slettet bruger
27. januar 2003 - 12:57 #8
Det ligner da ellers det.. :)

Ok.. jeg går ingen steder...
Avatar billede whatever Nybegynder
27. januar 2003 - 13:58 #9
Prøv dette:

<?php

include('../functions/config.php');

$mySQL_tabl = "ishop_groups";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result_category = mysql_query("SELECT * FROM $mySQL_tabl WHERE group_type = 'kategori' ORDER BY title");
if (mysql_num_rows($result_category) != 0) {
    while ($row_cat = mysql_fetch_array($result_category)) {
        $print_cat_list .= "<option value=\"" . $row_cat["group_id"] . "\">" . $row_cat["title"] . "</option>\n";
        $print_js .= "subgroups[" . $row_cat["group_id"]  . "] = new Array (";
        $i = 0;
        $result_subgroups = mysql_query("SELECT * FROM exp_kommune WHERE amtID = " . $row_cat["group_id"] . " ORDER BY kommune");
        if (mysql_num_rows($result_subgroups) != 0) {
            while ($row_subg = mysql_fetch_array($result_subgroups)) {
                if ($i == 0) {
                    $print_js .= "'0#Vælg','" . $row_subg["group_id"] . "#" . $row_subg["title"] . "'";
                } else {
                    $print_js .= ",'" . $row_subg["group_id"] . "#" . $row_subg["title"] . "'";
                }
                $i++;
            }
        } else {
            $print_sub_list = "<option value=\"\">INGEN UNDERGRUPPER</option>\n";
        }
        $print_js .= ")\n";
    }
} else {
    $print_cat_list .= "<option value=\"\">INGEN KATEGORIER</option>\n";
}

?>

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

var subgroups = new Array()
subgroups[0] = new Array ('0#Vælg')
<?= $print_js ?>

function getSubgroups(frm) {
  var category_id = frm.category_id.value;
  var i; 
  frm.subgroup_id.options.length = 0;
  for (i = 0; i < subgroups[category_id].length; i++) {
    arr_split = subgroups[category_id][i].split("#");
    var no = new Option();
    no.value = arr_split[0];
    no.text = arr_split[1];
    frm.subgroup_id[i] = no;
  }
}

//-->
</script>
</head>

<body>

<form action="add_groups_submit.php" method="post" class="form" name="formular">

OPRET VAREGRUPPE
<br>
<br>

<table border="1">

<tr>
<td>&nbsp;&nbsp;Title:</td>
<td><input type="text" name="title" maxlength="32" class="felt"></td>
</tr>

<tr>
<td>&nbsp;&nbsp;Gruppe type:</td>
<td>
  <select name="group_type" class="pulldown">
    <option value="">Vælg</option>
    <option value="Kategori">Kategori</option>
    <option value="Varegruppe">Varegruppe</option>
  </select>
</td>
</tr>

<tr>
<td>&nbsp;&nbsp;Hvis varegruppe, i vælg kategori:</td>
<td>

<select name="category_id" class="pulldown" onchange="getSubgroups(this.form)">
<?= $print_cat_list ?>
</select>
</td>
</tr>

<tr>
<td>&nbsp;&nbsp;Hvis undervaregruppe, i vælg varegruppe:</td>
<td>

<select name="subgroup_id" class="pulldown">
<?= $print_sub_list ?>
</select>
</td>
</tr>


<tr>
<td colspan="2">
&nbsp;&nbsp;<input type="submit" name="Send" value=" Add " class="knap"></td>
</tr>

</table>

</form>

</body>
</html>


Det er ikke testet da jeg ikke har en database med tabeller etc.
Avatar billede Slettet bruger
27. januar 2003 - 16:06 #10
Den brokker sig over linje 17...

        if (mysql_num_rows($result_subgroups) != 0) {
Avatar billede Slettet bruger
27. januar 2003 - 16:06 #11
heh.. nok pga:

linje 16..

        $result_subgroups = mysql_query("SELECT * FROM exp_kommune WHERE amtID = " . $row_cat["group_id"] . " ORDER BY kommune");
Avatar billede whatever Nybegynder
27. januar 2003 - 16:17 #12
Ups. Den havde jeg glemt at ændre.
Avatar billede Slettet bruger
27. januar 2003 - 16:20 #13
Sidder lige og prøver... Hvad er det, der skal stå?

        $result_subgroups = mysql_query("SELECT * FROM $mySQL_tabl WHERE subgroups_id=" . $row_cat["group_id"] . " ORDER BY title");

?
Avatar billede Slettet bruger
27. januar 2003 - 16:26 #14
$result_subgroups = mysql_query("SELECT * FROM $mySQL_tabl WHERE category_id=" . $row_cat["group_id"] . " ORDER BY title");

Ser ud til at virke... men hvis der ikke er nogle subgroup, skriver den bare ingenting, men det kan jeg nok selv rode med...
Avatar billede Slettet bruger
28. februar 2003 - 11:03 #15
Lukker, se http://www.eksperten.dk/spm/310115

smid svar i det nye, spm hvis du vil ha de point som du bør ha :)
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