Avatar billede iandk Nybegynder
12. januar 2009 - 15:56 Der er 10 kommentarer og
1 løsning

Dropdown menu og checkbox med default valg

Hej,

Jeg har lavet en bogdatabase, som kan redigeres fra internettet. Jeg vil gerne have så man også kan rette i posterne.

Når jeg laver min "rette"-side vil jeg naturligvis gerne have de eksisterende værdier indsat i tomme felter. Det har jeg heller ikke noget problem med når bare det er felter der er tale om.

Men det er noget andet når jeg har en dropned liste med f.eks. alle forfattere eller som her genrer i databasen, for så vil jeg jo gerne have at den viser den eksisterende og ikke bare den første i udtrækket - samtidig vil jeg også gerne kunne checke de checkboxe, som måtte have check i forvejen.

Jeg bruger bogid variablen når jeg åbner min side xxxxx.php?bogid=123

Håber I kan hjælpe mig - min side ser indtil videre sådan ud:

<?php

$bogid = $_GET['bogid'];

    include "setup.php";
    include "connect.php";

$query="SELECT * FROM bookstotal WHERE BogID='{$bogid}'";
$result=mysql_query($query);

$num=mysql_numrows($result);

$BogId=mysql_result($result,$i,"BogId");

$genre_long=mysql_result($result,$i,"genre_long");
$tick_godbog=mysql_result($result,$i,"tick_godbog");
$tick_læstbog=mysql_result($result,$i,"tick_læstbog");



<INPUT TYPE=CHECKBOX NAME="tick_læstbog" value="1" checked>Læst bog<BR>
<INPUT TYPE=CHECKBOX NAME="tick_godbog" value="1">God bog<BR>

Genre (Vælg): <select name="GenreChosen">

<?php
    include "setup.php";
    include "connect.php";

$query="SELECT * FROM genre ORDER BY genre_long";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$GenreId=mysql_result($result,$i,"Id");
$genre_long=mysql_result($result,$i,"genre_long");

echo "<option value='$GenreId'>$genre_long ($GenreId)</option>\n";

$i++;
}

?>

</select><br>
Avatar billede majbom Novice
12. januar 2009 - 18:19 #1
while ($i < $num) {

$GenreId=mysql_result($result,$i,"Id");
$genre_long_db=mysql_result($result,$i,"genre_long");
$sel = "";
if($genre_long_db==$genre_long)$sel = "selected";
echo "<option value='$GenreId' $sel>$genre_long ($GenreId)</option>\n";

$i++;
}
Avatar billede majbom Novice
12. januar 2009 - 18:21 #2
hvordan gemmer du checkboxene i din db?

det kunne godt være en fordel at gemme id'et på genren under den enkelte bog, istedet for selve teksten...
Avatar billede iandk Nybegynder
12. januar 2009 - 22:22 #3
Tak for hurtigt svar. Jeg gemmer checkboxene som 0 og 1, hvor 1 er afkrydset.

Dog virker dit script ikke efter med genre. Den skriver samme genre hele vejen ned, så man ikke kan rette til en anden genre end den allerede oprettede ;)
Avatar billede majbom Novice
13. januar 2009 - 08:51 #4
ret:
echo "<option value='$GenreId' $sel>$genre_long ($GenreId)</option>\n";

til:
echo "<option value='$GenreId' $sel>$db_genre_long ($GenreId)</option>\n";

og mht dine checkboxe:

ret:
<INPUT TYPE=CHECKBOX NAME="tick_læstbog" value="1" checked>Læst bog<BR>

til:
<INPUT TYPE=CHECKBOX NAME="tick_laestbog" value="1" <?php if($tick_laestbog==1){echo "checked";}?>>Læst bog<BR>

og så omdøblige dine variabler, så de ikke indeholder danske bogstaver
Avatar billede iandk Nybegynder
13. januar 2009 - 09:06 #5
Super ! Det virker med checkboxene, men stadig ikke med genre.

Hvis jeg retter til ovenstående får jeg blot ID'erne vist i dropned listen og desværre nr 1 først - ligegyldig hvad værdien er for id'en.
Avatar billede majbom Novice
13. januar 2009 - 09:42 #6
ser din while såden her ud:

while ($i < $num) {

$GenreId=mysql_result($result,$i,"Id");
$genre_long_db=mysql_result($result,$i,"genre_long");
$sel = "";
if($genre_long_db==$genre_long)$sel = "selected";
echo "<option value='$GenreId' $sel>$db_genre_long ($GenreId)</option>\n";

$i++;
}

?
Avatar billede iandk Nybegynder
13. januar 2009 - 09:58 #7
Ja, den ser sådan ud :)
Avatar billede iandk Nybegynder
13. januar 2009 - 10:26 #8
Kanon det virker.
db_genre_long i din sidste linie skulle bare lige hedde genre_long_db.

Det er lige præcis hvad jeg leder efter - svar og du får dine velforjente point.

Kan du på falderebet anbefale et godt/nemt login system til en php/sql side - har luret en del på adLDAP, da jeg kører et domæne ?

Igen tak for hjælpen - håber jeg kan finde ud af at give dig point ;)
Avatar billede majbom Novice
13. januar 2009 - 10:56 #9
nååh ja, det er sq da mig der er en retard...

jeg smider et svar hér, så skal du bare markere det ude til venstre og accpetere...
Avatar billede iandk Nybegynder
13. januar 2009 - 14:13 #10
Tak for hjælpen
Avatar billede majbom Novice
13. januar 2009 - 15:36 #11
selv tak :)
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