Avatar billede 44fire44 Nybegynder
06. juni 2005 - 14:02 Der er 14 kommentarer og
1 løsning

Optionboks laver ny optionboks + en lille biting

Hej Eksperter...

Jeg har et script der henter data ud fra en database i en <OPTION>-boks...

<?php

$hent = mysql_query("SELECT ting, ting2 FROM ting")
      or die( "Unable to select. Reason: ".mysql_error());

{
    echo "<select name=\"ETELLERANDETNAVN\">\n";
    while  ($row = mysql_fetch_array($hent))  {
        echo "  <option value='" .$row['TING'] ."'>".$row['TING'] ."</option>\n";
    }
    echo "</select>\n";
}


?>


- hvordan får jeg ovenstående kode til at oprette en ny optionboks - fx. hvis jeg nu har 4 forskellige valmuligheder i tabellen "TING", hvor jeg så vælger "TING3" (det 3. punkt fx) - så skal den oprette en ny optionboks ved siden af, med 4 andre valgmuligheder, fra en anden tabel?

-------

den anden ting:

Hvordan kan jeg lave et link, som gør, at den automatisk vælger fx "TING3" og så "NOGETANDET2" i de 2 optionbokse, fra en anden side

dvs. at brugeren er fri for at vælge i de 2 dropdownbokse, men kan nøjes med at trykke på linket

------

Mvh
44fire44
Avatar billede sukos Juniormester
06. juni 2005 - 14:07 #1
Hvis PHP, så brug $_GET som method
og når du kører din while, så spørg
echo"<option value='". $row["ting"] ."'";

if($row["ting"] == "TING3") {
echo" selected";
}

echo">klkflklfd</option>
Avatar billede 44fire44 Nybegynder
06. juni 2005 - 23:46 #2
jeg tror godt jeg forstår hvad du mener...

men jeg får fejlen: Parse error: parse error, unexpected T_LNUMBER, expecting ',' or ';' in /web/www/xxx/xxx/xxx/xxx.php on line xxx

så
1. hvordan sætter jeg det korrekt ind?
2. den option-boks der kommer, skal ligeledes hente informationer ud fra DB'em - men fra en anden tabel - så kan jeg vel ikke nøjes med ovenstående?
Avatar billede 44fire44 Nybegynder
09. juni 2005 - 00:59 #3
anyone?
Avatar billede sukos Juniormester
09. juni 2005 - 09:11 #4
Et eks.

<?php
$ar = array("noget", "tekst", "og_mere", "tekstigen");
$ar_igen = array("noget_igen", "tekst_igen", "og_mere_igen", "tekstigen_igen");

function selected($var, $control=1, $tx="checked") {
    if(isset($var) && $var == $control) {
    return " ". $tx;
    }
}

?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">
<select name="action" onchange="this.form.submit();">
<option value="">Vælg</option>
<?php
for($i = 0; $i < 4; $i++) {
echo"\n<option value=\"". $ar[$i] ."\"". selected($_GET["action"], $ar[$i], "selected") .">". $ar[$i] ."</option>";
}
echo"</select>";

if(isset($_GET["action"])) {
?>
<select name="next" onchange="this.form.submit();">
<option value="">Vælg igen</option>
<?php
for($i = 0; $i < 4; $i++) {
echo"\n<option value=\"". $ar_igen[$i] ."\"". selected($_GET["next"], $ar_igen[$i], "selected") .">". $ar_igen[$i] ."</option>";
}
}
?></select>

</form>
Avatar billede 44fire44 Nybegynder
09. juni 2005 - 20:26 #5
cool nok - og hvordan får jeg så:

$ar = array("noget", "tekst", "og_mere", "tekstigen");
$ar_igen = array("noget_igen", "tekst_igen", "og_mere_igen", "tekstigen_igen");


til at hente ud fra databasen istedet for ovenstående "array"s??
Avatar billede 44fire44 Nybegynder
09. juni 2005 - 20:28 #6
forresten, så skal det være nyt indhold i den anden dropdown boks, for hver punkt der er i den første...
Avatar billede 44fire44 Nybegynder
09. juni 2005 - 20:30 #7
jeg er ved at lave noget med biler, og det skal være noget lignende:

DROPDOWNBOKS 1        -        DROPDOWNBOKS 2
Lille Personbil        -        Skoda, Volvo, Folkevogn, udtræk, fra, database
Stor Personbil        -        Mercedes, BMW, osv, osv2
Lille Kassevogn        -        Ford Transit, mere, ogmere

osv, osv - forstår du?
Avatar billede 44fire44 Nybegynder
10. juni 2005 - 00:23 #8
Det må være noget med en masse "IF"'er, går jeg ud fra, eller er jeg helt på den forkerte side?
Avatar billede sukos Juniormester
10. juni 2005 - 14:07 #9
Noget i denne stil

CREATE TABLE `user_tilmelding` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(24) NOT NULL default '',
  `id_navn` int(11) NOT NULL default '0',
  `tid` int(11) NOT NULL default '0',
  `ref` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

#
# Data dump for tabellen `user_tilmelding`
#

INSERT INTO `user_tilmelding` VALUES (16, 'ny', 6, 1118523600, 3);
INSERT INTO `user_tilmelding` VALUES (15, 'ko', 7, 1118523600, 3);
INSERT INTO `user_tilmelding` VALUES (14, 'pi', 9, 1118526600, 3);
INSERT INTO `user_tilmelding` VALUES (13, 'pl', 8, 1118523600, 3);
   

Og så filen som henter og viser:

<?php
include("includes/settings.php");

// connect til DB
$hent = mysql_query("SELECT DISTINCT(biltype) FROM biler")
      or die( "Unable to select. Reason: ".mysql_error());

$m_typer = array();

    while ($t = mysql_fetch_object($hent)) {
    $m_typer[] = $t->biltype;
    }
mysql_free_result($hent);
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">
<?php
if(!isset($_GET["type"]) || !in_array(urldecode($_GET["type"]), $m_typer)) {
?>
<select name="type" onchange="this.form.submit();">
<option value="">Vælg modeltype</option>
<?php
foreach($m_typer as $type) {
echo"\n<option value=\"". urlencode($type) ."\">". $type ."</option>";
}
echo"</select> ";

}

    if(isset($_GET["type"])) {
    $valgt_type = urldecode($_GET["type"]);

        if(in_array($valgt_type, $m_typer)) {
        echo"Valgt modeltype er ". $valgt_type ." <a href=\"". $_SERVER["PHP_SELF"] ."\">V&aelig;lg ny modeltype</a><br />\n";
        echo"<input type=\"hidden\" name=\"type\" value=\"". urlencode($valgt_type) ."\">\n";

        $mulige_maerker = mysql_query("SELECT DISTINCT(maerke) FROM biler WHERE biltype = '". $valgt_type ."'") or die( "Unable to select. Reason: ".mysql_error());
            $m_maerker = array();
            while ($m = mysql_fetch_object($mulige_maerker)) {
            $m_maerker[] = $m->maerke;
            }
        mysql_free_result($mulige_maerker);

            if(!isset($_GET["maerke"])) {
            echo"<select name=\"maerke\" onchange=\"this.form.submit();\">\n";
            echo"<option value=\"\">V&aelig;lg bilmodel</option>";

                foreach($m_maerker as  $maerker) {
                echo"\n<option value=\"". urlencode($maerker) ."\">". $maerker ."</option>";
                }
            echo"</select>";
            }else{
                if(in_array(urldecode($_GET["maerke"]), $m_maerker)) {
                echo"Valgte bilmodel er ". urldecode($_GET["maerke"]) ." <a href=\"". $_SERVER["PHP_SELF"] ."?type=". urlencode($valgt_type) ."\">V&aelig;lg ny bilmodel</a><br />\n";
                ?></form>
                <form action="dinaction" method="post">
                <input type="hidden" name="modeltype" value="<?php echo urlencode($valgt_type); ?>">
            <input type="hidden" name="modelmaerke" value="<?php echo $_GET["maerke"]; ?>">

<table border="0"><tr><td colspan="2">

Alle felter skal udfyldes<br><br>
<hr>
<b>Personlige oplysninger:</b><br>
<br>
Fulde Navn:<BR>
<INPUT TYPE="text" name="navn"><BR>
Adresse:<BR>
<INPUT TYPE="text" name="adresse"><BR>
Portnummer og by:<BR>
<INPUT TYPE="text" name="postnr" maxlength="4" size="4"><INPUT TYPE="text" name="city"><BR>
Land:<BR>
<INPUT TYPE="text" name="land"><BR>
Telefon:<BR>
<INPUT TYPE="text" name="telefon"><BR>
Din e-mail:<BR>
<INPUT TYPE="text" name="email"><BR>

<br><hr><br>

</td></tr><tr><td>
<b>Leje Periode:</b>
</td></tr><tr><td>
Fra:</td><td><select name="fdag">
  <option value=' '> </option>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4'>4</option>
  <option value='5'>5</option>
  <option value='6'>6</option>
  <option value='7'>7</option>
  <option value='8'>8</option>
  <option value='9'>9</option>
  <option value='10'>10</option>
  <option value='11'>11</option>
  <option value='12'>12</option>
  <option value='13'>13</option>
  <option value='14'>14</option>
  <option value='15'>15</option>
  <option value='16'>16</option>
  <option value='17'>17</option>
  <option value='18'>18</option>
  <option value='19'>19</option>
  <option value='20'>20</option>
  <option value='21'>21</option>
  <option value='22'>22</option>
  <option value='23'>23</option>
  <option value='24'>24</option>
  <option value='25'>25</option>
  <option value='26'>26</option>
  <option value='27'>27</option>
  <option value='28'>28</option>
  <option value='29'>29</option>
  <option value='30'>30</option>
  <option value='31'>31</option>
</select>
<select name="fmaaned">
  <option value=' '> </option>
  <option value='Januar'>Januar</option>
  <option value='Februar'>Februar</option>
  <option value='Marts'>Marts</option>
  <option value='April'>April</option>
  <option value='Maj'>Maj</option>
  <option value='Juni'>Juni</option>
  <option value='Juli'>Juli</option>
  <option value='August'>August</option>
  <option value='September'>September</option>
  <option value='Oktober'>Oktober</option>
  <option value='November'>November</option>
  <option value='December'>December</option>
</select>
<select name="faar">
  <option value=' '> </option>
  <option value='2005'>2005</option>
  <option value='2006'>2006</option>
  <option value='2007'>2007</option>
  <option value='2008'>2008</option>
</select>
</td></tr><tr><td>
Til:</td><td><select name="tdag">
  <option value=' '> </option>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4'>4</option>
  <option value='5'>5</option>
  <option value='6'>6</option>
  <option value='7'>7</option>
  <option value='8'>8</option>
  <option value='9'>9</option>
  <option value='10'>10</option>
  <option value='11'>11</option>
  <option value='12'>12</option>
  <option value='13'>13</option>
  <option value='14'>14</option>
  <option value='15'>15</option>
  <option value='16'>16</option>
  <option value='17'>17</option>
  <option value='18'>18</option>
  <option value='19'>19</option>
  <option value='20'>20</option>
  <option value='21'>21</option>
  <option value='22'>22</option>
  <option value='23'>23</option>
  <option value='24'>24</option>
  <option value='25'>25</option>
  <option value='26'>26</option>
  <option value='27'>27</option>
  <option value='28'>28</option>
  <option value='29'>29</option>
  <option value='30'>30</option>
  <option value='31'>31</option>
</select>
<select name="tmaaned">
  <option value=' '> </option>
  <option value='Januar'>Januar</option>
  <option value='Februar'>Februar</option>
  <option value='Marts'>Marts</option>
  <option value='April'>April</option>
  <option value='Maj'>Maj</option>
  <option value='Juni'>Juni</option>
  <option value='Juli'>Juli</option>
  <option value='August'>August</option>
  <option value='September'>September</option>
  <option value='Oktober'>Oktober</option>
  <option value='November'>November</option>
  <option value='December'>December</option>
</select>
<select name="taar">
  <option value=' '> </option>
  <option value='2005'>2005</option>
  <option value='2006'>2006</option>
  <option value='2007'>2007</option>
  <option value='2008'>2008</option>
</select>
</td>
</tr><tr>
<td colspan="2"><br>
Afhentningssted:&nbsp;<select name="afd">
  <option value='København V, Enghavevej'>København V, Enghavevej</option>
</select>
<br><br><hr>
</td></tr><tr><td colspan="2">
<INPUT TYPE="hidden" name="emne" value="Ordre sendt fra hjemmeside">
<BR>
<INPUT TYPE="submit" VALUE="Send Forspørgsel" name="send">
<INPUT TYPE="reset">
</form>
</td></tr></table>



                <?php
                }else{
                echo"Valgte model findes ikke! <a href=\"". $_SERVER["PHP_SELF"] ."?type=". urlencode($valgt_type) ."\">Tilbage</a>";
                }
            }       

    }else{
    echo"Requested modeltype findes desværre ikke";
    }   
}
?>

</form>
Avatar billede sukos Juniormester
10. juni 2005 - 14:09 #10
Hov, det var sgu den forkerte tabel jeg fik lavet dump fra! :O)

CREATE TABLE `biler` (
  `id` int(11) NOT NULL auto_increment,
  `biltype` varchar(255) NOT NULL default '',
  `maerke` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

#
# Data dump for tabellen `biler`
#

INSERT INTO `biler` VALUES (1, 'Lille personbil', 'Skoda');
INSERT INTO `biler` VALUES (2, 'Lille personbil', 'Fiat 127');
INSERT INTO `biler` VALUES (3, 'Lille personbil', 'Toyota corolla');
INSERT INTO `biler` VALUES (4, 'Stor personbil', 'Mercedes sedan');
INSERT INTO `biler` VALUES (5, 'Stor personbil', 'Volvo 745');
INSERT INTO `biler` VALUES (6, 'Stor personbil', 'Aston Martin DB9');
INSERT INTO `biler` VALUES (7, 'Stor kassevogn', 'WV LT 35');
INSERT INTO `biler` VALUES (8, 'Stor kassevogn', 'Mercedes VITO');
INSERT INTO `biler` VALUES (9, 'Lille kassevogn', 'Toyota LiteAce');
INSERT INTO `biler` VALUES (10, 'Lille kassevogn', 'Toyota Hiace');
Avatar billede 44fire44 Nybegynder
10. juni 2005 - 17:22 #11
takker :D
Avatar billede sukos Juniormester
10. juni 2005 - 17:47 #12
du får lige et svar!
Avatar billede sukos Juniormester
11. juni 2005 - 08:29 #13
Her er en anden variation:

<?php

// connect til DB
$hent = mysql_query("SELECT DISTINCT(biltype) FROM biler")
      or die( "Unable to select. Reason: ".mysql_error());

$car_options = array();

    while ($t = mysql_fetch_object($hent)) {

    $get_cars = mysql_query("SELECT maerke FROM biler WHERE biltype = '". $t->biltype ."'");
        while($c = mysql_fetch_object($get_cars)) {
        $car_options[$t->biltype][] = $c->maerke;
        }
    mysql_free_result($get_cars);
    }
mysql_free_result($hent);

function valgt($var, $control=1, $tx="checked") {
    if(isset($var) && urldecode($var) == $control) {
    return " ". $tx;
    }
}

$m_typer = array_keys($car_options);

$valgt_type = "";
$valgt_model = "";
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">
<select name="type" onchange="this.form.submit();">
<option value="">Vælg modeltype</option>
<?php
foreach($m_typer as $type) {
echo"\n<option value=\"". urlencode($type) ."\"". valgt($_GET["type"], $type, "selected") .">". $type ."</option>";
}
?></select> <select name="maerke" onchange="this.form.submit();">
<option value="">V&aelig;lg bilmodel</option>
<?php

if(isset($_GET["type"]) && in_array(urldecode($_GET["type"]), $m_typer)) {

    $valgt_type = urldecode($_GET["type"]);

    foreach($car_options[$valgt_type] as $m_maerker) {
    echo"\n<option value=\"". urlencode($m_maerker) ."\">". $m_maerker ."</option>";
    }

    if(isset($_GET["maerke"]) && in_array(urldecode($_GET["maerke"]), $car_options[$valgt_type])) {
    $valgt_model = urldecode($_GET["maerke"]);
    }

}
?></select></form>

<form action="dinaction" method="post">
<input type="hidden" name="bil_type" value="<?php echo urlencode($valgt_type); ?>">
<input type="hidden" name="bil_model" value="<?php echo urlencode($valgt_model); ?>">

resten af din form........................................

Ved submit tjekker du jo så at bil_type og bil_model ikke er tomme
Evt. kan du jo bruge noget javascript til at lave select menuen ud af array'et  $car_options[$t->biltype][] for at vise din select menu et andet sted
Men her er jeg stået af! :O)
Avatar billede sukos Juniormester
11. juni 2005 - 12:02 #14
Forresten, det kan gøres så'n:

// connect til DB
$hent = mysql_query("SELECT biltype, maerke FROM biler GROUP BY (maerke) ORDER BY biltype")
      or die( "Unable to select. Reason: ".mysql_error());

$car_options = array();

    while ($t = mysql_fetch_object($hent)) {
    $car_options[$t->biltype][] = $t->maerke;
    }

mysql_free_result($hent);
Avatar billede 44fire44 Nybegynder
14. juni 2005 - 22:40 #15
Okey... - nu bruger jeg et kald fra min forside hvor jeg inkluderer en side på denne måde index.php?page=inc/SIDE.php

hvis vi nu kalder ovenstående kode for (det første eksembel) lejeform.php - hvordan henter jeg så alle ?type= og ?maerke= ud som index.php?page=inc/lejeform.php&type=TYPE&maerke=MÆRKE

Mvh
44fire44
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