Avatar billede overgreat Forsker
27. august 2004 - 09:44 Der er 5 kommentarer og
1 løsning

Dropdown skal have tidligere værdi i retteformular

Håber der er lidt hjælp at hente.....

Jeg laver en retteformular. Dataene sættes ind i produkt_moebel.

I den oprindelige formular (oprettelsen) har jeg nedenstående eksempel på serienavnet. Når jeg indsætter denne i retteformularen har jeg blot et problem.

Hvordan sørger jeg for at den starter ved den værdi brugeren valgte ved oprettelsen?

Dvs. valgmuligheder hentes i produkt_serie mens dataene sættes i i produkt_moebel......

På forhånd tak!

-------------------------------

<select name="serienavn">
<?

  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

$foresp = mysql_query("SELECT navn FROM produkt_serie ORDER BY id DESC ");
  include("config.php");

  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

while ($data = mysql_fetch_row($foresp)){

echo "<option>$data[0]</option>";

}
?>
</select>
Avatar billede ldanielsen Nybegynder
27. august 2004 - 10:03 #1
Først: i Produkt_serie har du en kolonne der hedder, der skal indeholde et unikt tal, lav det som autoincrement, eller autonumerering på dansk. I Produkt_Moebel laver du en kolonne, der hedder Produkt_serieID, hvori du gemmer tallet for brugerens valg.

Når der så skal rettes, henter du i Produkt_Moebel det Produkt_serieID som er valgt, og når du echo'er Select'en skal du så checkke hvornår du rammer det tidligere valgte, noget i den stil:

$foresp = mysql_query("SELECT id, navn FROM produkt_serie ORDER BY id DESC ");
$valgtId = <Ja, det skal du så hent fra Produkt_Moebel, OK?>;

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected"
}else{
  $strSelected = ""
  }
echo "<option value=$data[0] $strSelected>$data[1]</option>";

}

- men du skal altså starte med at gemme ID i Produkt_Moebel i stedet for navn. På den måde kan en serie nemlig skifte navn, og du vil stadig kunne finde ud af hvad der blev valgt tidligere
Avatar billede ldanielsen Nybegynder
27. august 2004 - 10:04 #2
rettelse :

Først: i Produkt_serie har du en kolonne der hedder id, ...
Avatar billede ldanielsen Nybegynder
27. august 2004 - 10:05 #3
rettelse igen:

Jeg glemmer ; sidst i linierne, lave ikke selv php så ...
Avatar billede overgreat Forsker
27. august 2004 - 22:02 #4
Jeg får ikke valgmuligheder når jeg har skrevet følgende...... den skriver kun teksten. Dvs den kommer ikke i en dropdown....

Er der en der kan se løsningen?

----------------

<?php

$foresp = mysql_query("SELECT id, navn FROM produkt_serie ORDER BY id DESC ");
$valgtId = mysql_query("SELECT id, navn FROM produkt_moebel ORDER BY id DESC ");

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[1] $strSelected>$data[1]</option>";

}

?>
Avatar billede overgreat Forsker
27. august 2004 - 22:18 #5
Ovennævnte løst...

Jeg får dog ikke den til at vælge den rigtige...... Den vælger bare den samme hver gang. Dvs den får ikke valgt den der sidst er valgt.

Kan I se hvad det er der går galt?

----------------------------


<select name="serienavn">
<?php

$foresp = mysql_query("SELECT id, navn FROM produkt_serie ORDER BY id DESC ");
$valgtId = mysql_query("SELECT serie_id, navn FROM produkt_moebel ORDER BY id DESC ");

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[1] $strSelected>$data[1]</option>";

}

?>
</select>
Avatar billede ldanielsen Nybegynder
30. august 2004 - 09:19 #6
Du får jo ikke hentet det valgte id fra produkt_moebel
Du har vel et bestemt møbel "fremme", ikke? Det vil sige at du på dette tidspunkt kender id for det møbel det handler om. lad os sige at det er $MoebelID

$valgtIdRec = mysql_query("SELECT serie_id, navn FROM produkt_moebel WHERE ID = $MoebelID");

//og så skal du have tallet ud:
$data = mysql_fetch_row($valgtIdRec);

$valgtId = $data[0];


//NU har du det rigtige serieID, og kan lave selecten

while ($data = mysql_fetch_row($foresp)){
if ($data[0] == $valgtId){
  $strSelected = "selected";
}else{
  $strSelected = "";
  }
echo "<option value=$data[1] $strSelected>$data[1]</option>";
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