Avatar billede vix-mix Nybegynder
10. november 2005 - 13:09 Der er 16 kommentarer og
1 løsning

Hjælp til select box

Hej eksperter.

Jeg har et script som ser sådan herud:

<form action="" method="post" name="frm1">
<select onChange="document.frm1.submit();" name="brand">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
    if ($row['id'] == $_POST['brand']) {
        echo "<option value=\"".$row['id']."\" SELECTED>".$row['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row['id']."\">".$row['maerke']."</option>\n";
    }
}
?>
</select>
</form>
<form action="" method="post" name="frm2">
<select onChange="document.frm2.submit();" name="motor">
<option value="">Vælge bil</option>
<?php
if (isset($_POST['brand'])) {
    require "db.php";
    $sql2 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand']."'";
    $result2 = mysql_query($sql2);
    while($row = mysql_fetch_array($result2))
    {
echo "<option value=\"".$row['id']."\">".$row['motor']."</option>\n";
}
}
?>
</select>
<input type="submit" name="next" id="next" value="Sammenlign">
<input type="text" name="frm2" id="next" value="<? echo $_POST['motor']; ?>">
</form>

Hvad den gør kan i se her:

http://dbmeas.subsite.dk/maaling.php

Og mine problemer er:
#1: At når jeg har valgt et bil mærke i den øverste form, og går ned i den anden form for at vælge en bil jeg gerne vil have info om, så reloader den.. men det skal den ikke, det eneste den skal er at reloade i det textfelt der hedder "frm2" så man kan se id'et på den.

kan i hjælpe med dette?
Avatar billede roenving Novice
10. november 2005 - 15:42 #1
Er det ikke bare:

<form action="" method="post" name="frm1">
<select onChange="document.frm1.submit();" name="brand">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
    if ($row['id'] == $_POST['brand']) {
        echo "<option value=\"".$row['id']."\" SELECTED>".$row['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row['id']."\">".$row['maerke']."</option>\n";
    }
}
?>
</select><br>
<select onChange="this.form.frm2.value=this.value;" name="motor">
<option value="">Vælg bil</option>
<?php
if (isset($_POST['brand'])) {
    require "db.php";
    $sql2 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand']."'";
    $result2 = mysql_query($sql2);
    while($row = mysql_fetch_array($result2))
    {
echo "<option value=\"".$row['id']."\">".$row['motor']."</option>\n";
}
}
?>
</select>
<input type="submit" name="next" id="next" value="Sammenlign">
<input type="text" name="frm2" id="next" value="Vælg bil">
</form>
Avatar billede roenving Novice
10. november 2005 - 15:42 #2
-- du kan ikke submitte en form uden at dokumentet reloades !-)
Avatar billede vix-mix Nybegynder
10. november 2005 - 19:20 #3
Jamen hallo.. det er jo sådan det skal være.... er det muligt at sætte to ved siden af hinanden og så trykke kun på en knap ? altså submit!
Avatar billede vix-mix Nybegynder
10. november 2005 - 19:28 #4
Det jeg mener med at sætte 2 ved siden af hinanden, er selve scriptet du lige har rettet til :)
Avatar billede vix-mix Nybegynder
10. november 2005 - 20:29 #5
hvorfor virker dette ikke?

<form action="" method="post" name="frm1">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><div align="center">Bil 1 </div></td>
    <td colspan="2"><div align="center">Bil 2 </div></td>
  </tr>
  <tr>
    <td>M&aelig;rke:</td>
    <td><select onChange="document.frm1.submit();" name="brand">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
    if ($row['id'] == $_POST['brand']) {
        echo "<option value=\"".$row['id']."\" SELECTED>".$row['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row['id']."\">".$row['maerke']."</option>\n";
    }
}
?>
</select></td>
    <td>M&aelig;rke:</td>
    <td><select onChange="document.frm2.submit();" name="brand2">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql3 = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result3 = mysql_query($sql3);
while($row3 = mysql_fetch_array($result3))
{
    if ($row3['id'] == $_POST['brand2']) {
        echo "<option value=\"".$row3['id']."\" SELECTED>".$row3['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row3['id']."\">".$row3['maerke']."</option>\n";
    }
}
?>
</select></td>
  </tr>
  <tr>
    <td>Bil:</td>
    <td><select onChange="this.form.frm3.value=this.value;" name="motor">
<option value="">Vælg bil</option>
<?php
if (isset($_POST['brand'])) {
    require "db.php";
    $sql2 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand']."'";
    $result2 = mysql_query($sql2);
    while($row2 = mysql_fetch_array($result2))
    {
echo "<option value=\"".$row2['id']."\">".$row2['motor']."</option>\n";
}
}
?>
</select></td>
    <td>Bil:</td>
    <td><select onChange="this.form.frm4.value=this.value;" name="motor2">
<option value="">Vælg bil</option>
<?php
if (isset($_POST['brand2'])) {
    require "db.php";
    $sql4 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand2']."'";
    $result4 = mysql_query($sql4);
    while($row4 = mysql_fetch_array($result4))
    {
echo "<option value=\"".$row4['id']."\">".$row4['motor']."</option>\n";
}
}
?>
</select></td>
  </tr>
  <tr>
    <td colspan="4"><center>frm2:<input type="text" name="frm3" id="next">frm4:<input type="text" name="frm4" id="next"></center></td>
    </tr>
  <tr>
    <td colspan="4"><center><input type="submit" name="next" id="next" value="Sammenlign"></center></td>
    </tr>
</table>
</form>
Avatar billede roenving Novice
11. november 2005 - 07:44 #6
Hvad går da galt ?-)
Avatar billede vix-mix Nybegynder
11. november 2005 - 08:27 #7
Lige rettelse af koden her:

<?
if (isset($_POST['next'])) {
$frm2 = $_POST['frm2'];
$frm3 = $_POST['frm3'];
header("Location:samling.php?bil=$frm2&bil2=$frm3");
}
?>
<form action="" method="post" name="frm1">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><div align="center">Bil 1 </div></td>
    <td colspan="2"><div align="center">Bil 2 </div></td>
  </tr>
  <tr>
    <td>M&aelig;rke:</td>
    <td><select onChange="document.frm1.submit();" name="brand">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
    if ($row['id'] == $_POST['brand']) {
        echo "<option value=\"".$row['id']."\" SELECTED>".$row['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row['id']."\">".$row['maerke']."</option>\n";
    }
}
?>
</select></td>
    <td>M&aelig;rke:</td>
    <td><select onChange="document.frm1.submit();" name="brand2">
<option value="">Vælge mærke</option>
<?php
require "db.php";
$sql3 = "SELECT * FROM db_bil_maerke";
// har fjernet group by da der kun er et af hvert mærke i denne tabel
$result3 = mysql_query($sql3);
while($row3 = mysql_fetch_array($result3))
{
    if ($row3['id'] == $_POST['brand2']) {
        echo "<option value=\"".$row3['id']."\" SELECTED>".$row3['maerke']."</option>\n";
    } else {
        echo "<option value=\"".$row3['id']."\">".$row3['maerke']."</option>\n";
    }
}
?>
</select></td>
  </tr>
  <tr>
    <td>Bil:</td>
    <td><select onChange="this.form.frm2.value=this.value;" name="motor">
<option value="">Vælg bil</option>
<?php
if (isset($_POST['brand'])) {
    require "db.php";
    $sql2 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand']."'";
    $result2 = mysql_query($sql2);
    while($row2 = mysql_fetch_array($result2))
    {
echo "<option value=\"".$row2['id']."\">".$row2['motor']."</option>\n";
}
}
?>
</select></td>
    <td>Bil:</td>
    <td><select onChange="this.form.frm3.value=this.value;" name="motor2">
<option value="">Vælg bil</option>
<?php
if (isset($_POST['brand2'])) {
    require "db.php";
    $sql4 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand2']."'";
    $result4 = mysql_query($sql4);
    while($row4 = mysql_fetch_array($result4))
    {
echo "<option value=\"".$row4['id']."\">".$row4['motor']."</option>\n";
}
}
?>
</select></td>
  </tr>
  <tr>
    <td colspan="4"><center>frm2:<input type="text" name="frm2" id="next">frm3:<input type="text" name="frm3" id="next"></center></td>
    </tr>
  <tr>
    <td colspan="4"><center><input type="submit" name="next" id="next" value="Sammenlign"></center></td>
    </tr>
</table>
</form>



Jeg fik rettet koden til så den nu virker på den måde den faktisk skal.. der er bare en lille fejl.

#1: At man skal først vælge de 2 bilmærker(FRM1) man vil sammeligne og derefter vælge en motor i de andre felter, for hvis man vælger, frm1 og frm2 det enested og så går hen og vælger den anden frm1 til bil 2 så opdagtere den siden og så mister den dataet på bil 1 .. men du kan prøve på:

http://dbmeas.subsite.dk/maaling.php
Avatar billede roenving Novice
11. november 2005 - 08:52 #8
Så skal du i din php-kode checke for om motor og/eller motor2 har en værdi !-)
Avatar billede vix-mix Nybegynder
11. november 2005 - 09:06 #9
:-| ... hehe.. hmm, HVIS DU VIL kan du så hjælpe med at lave når denne frm1 er sat så kommer de 2 nederste frm2 og frm3 automatisk frem.. for så ved de at de først skal vælge dem og derefter vælge de andre..
Avatar billede roenving Novice
11. november 2005 - 09:20 #10
Er det ikke lettere bare at gøre det ?-)

<?php
if (isset($_POST['brand2'])) {
    $sel = isset($_POST['motor2']) ? $_POST['motor2'] : "";
    require "db.php";
    $sql4 = "SELECT * FROM db_bil_motor WHERE bil_maerke = '".$_POST['brand2']."'";
    $result4 = mysql_query($sql4);
    while($row4 = mysql_fetch_array($result4))
    {
echo "<option value=\"".$row4['id']."\"".($sel==$row4['id']?" selected":"").">".$row4['motor']."</option>\n";
}
}
?>
Avatar billede roenving Novice
11. november 2005 - 09:21 #11
-- og ligeledes med felterne med kopien !-)
Avatar billede vix-mix Nybegynder
11. november 2005 - 09:27 #12
vil du sætte den ene ind så jeg lige er HELT med på hvad du mener :o)?
Avatar billede vix-mix Nybegynder
11. november 2005 - 10:49 #13
nu har jeg sat dem ind.. men den mister stadig dataen i det skjulte felt når siden bliver opdagteret
Avatar billede vix-mix Nybegynder
29. november 2005 - 16:03 #14
smid et svar.
Avatar billede roenving Novice
29. november 2005 - 16:09 #15
Oki '-)
Avatar billede vix-mix Nybegynder
29. november 2005 - 16:18 #16
takker for hjælpen.

-lukket-
Avatar billede roenving Novice
29. november 2005 - 16:19 #17
-- og jg takker for point ;~}
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