Avatar billede -kenner- Nybegynder
02. august 2005 - 17:57 Der er 6 kommentarer og
2 løsninger

Selecte en speciel <option> efter indhold i hver enkelt celle.

Hej Eksperter,

Jeg sidder og skal lave et system, som skal selecte en option i en select, alt efter om der står 1,2,3.. eller 10 i celle i databasens tabel.

Jeg har forsøgt med følgende kode, men den har det problem at når der kommer et tal der er højere end 1 ( f.eks. 2,3 osv. ), så fortsætter den med at selecte den option, selv om der står et andet tal i tebellen.

- Kan i hjælpe?


Kode:

while ($row = mysql_fetch_array($ssn)){

    if($row['antal'] == "1"){
$antal1 = "SELECTED";
}elseif($row['antal'] == "2"){
$antal2 = "SELECTED";
}elseif($row['antal'] == "3"){
$antal3 = "SELECTED";
}elseif($row['antal'] == "4"){
$antal4 = "SELECTED";
}elseif($row['antal'] == "5"){
$antal5 = "SELECTED";
}elseif($row['antal'] == "6"){
$antal6 = "SELECTED";
}elseif($row['antal'] == "7"){
$antal7 = "SELECTED";
}elseif($row['antal'] == "8"){
$antal8 = "SELECTED";
}elseif($row['antal'] == "9"){
$antal9 = "SELECTED";
}elseif($row['antal'] == "10"){
$antal10 = "SELECTED";
}

$antal = "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\" name=\"antalform\"><input type=\"hidden\" name=\"antalid\" value=\"{$row["id"]}\"><select name=\"antallet\" onchange=\"java script:this.form.submit();\"><option value=\"1\" $antal1>1</option><option value=\"2\" $antal2>2</option><option value=\"3\" $antal3>3</option><option value=\"4\" $antal4>4</option><option value=\"5\" $antal5>5</option><option value=\"6\" $antal6>6</option><option value=\"7\" $antal7>7</option><option value=\"8\" $antal8>8</option><option value=\"9\" $antal9>9</option><option value=\"10\" $antal10>10</option></select></form>";

print "<tr height=\"20\"><form name=\"slet".$row["id"]."\" method=\"post\" action=\"$PHP_SELF\">
<td style=\"border:1px solid #000000\" valign=\"top\">".$row["navn"]."</td>
<td style=\"border:1px solid #000000\" valign=\"top\"><a href=\"http://www.".$row["brugernavn"].".arto.dk\" target=\"_blank\">".$row["brugernavn"]."</a></td>
<td style=\"border:1px solid #000000\" valign=\"top\">".$antal."</td>
<td style=\"border:1px solid #000000\" valign=\"top\">".$betal."</td>
<td style=\"border:1px solid #000000\" valign=\"top\"><input type=\"hidden\" name=\"id\" value=\"".$row["id"]."\">
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\"><input type=\"hidden\" name=\"sletid\" value=\"{$row["id"]}\"><input type=\"submit\" name=\"slet\" value=\"Slet\"></td></form></tr>";
}
print"</table>";
Avatar billede jaw Nybegynder
02. august 2005 - 17:59 #1
Jeg har dog ikke testet din kode, men prøv at udskrive dine $antal1 - $antalX og se om de indeholder hvad du mener de gør.

En indskydelse kan være at fjerne dine "" om tallene...
Avatar billede sonyboy Nybegynder
03. august 2005 - 13:51 #2
Det er noget af en besværlig kode du har fundet på.


$i = 0;
while ($row = mysql_fetch_array($ssn)){
    $i++;
    $checked = ($row['antal'] == $i) ? ' selected' : '';
    $options .= '<option value="'.$i.'"'.$checked.'></option>';
}

$antal = "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\" name=\"antalform\"><input type=\"hidden\" name=\"antalid\" value=\"{$row["id"]}\"><select name=\"antallet\" onchange=\"java script:this.form.submit();\">".$options."</select></form>";
Avatar billede -kenner- Nybegynder
03. august 2005 - 14:18 #3
Skal den while så ind i den anden?
Avatar billede -kenner- Nybegynder
03. august 2005 - 14:24 #4
Okay, det kan jeg ikke helt få til at virke, hvordan kommer det til at se ud i min kode?
Avatar billede sonyboy Nybegynder
05. august 2005 - 14:55 #5
Sådan her skulle det gerne virke;

$i = 0;
while ($row = mysql_fetch_array($ssn)){
    $i++;
    $checked = ($row['antal'] == $i) ? ' selected' : '';
    $options .= '<option value="'.$i.'"'.$checked.'></option>';
}

$antal = "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\" name=\"antalform\"><input type=\"hidden\" name=\"antalid\" value=\"{$row["id"]}\"><select name=\"antallet\" onchange=\"java script:this.form.submit();\">".$options."</select></form>";

print "<tr height=\"20\"><form name=\"slet".$row["id"]."\" method=\"post\" action=\"$PHP_SELF\">
<td style=\"border:1px solid #000000\" valign=\"top\">".$row["navn"]."</td>
<td style=\"border:1px solid #000000\" valign=\"top\"><a href=\"http://www.".$row["brugernavn"].".arto.dk\" target=\"_blank\">".$row["brugernavn"]."</a></td>
<td style=\"border:1px solid #000000\" valign=\"top\">".$antal."</td>
<td style=\"border:1px solid #000000\" valign=\"top\">".$betal."</td>
<td style=\"border:1px solid #000000\" valign=\"top\"><input type=\"hidden\" name=\"id\" value=\"".$row["id"]."\">
<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\"><input type=\"hidden\" name=\"sletid\" value=\"{$row["id"]}\"><input type=\"submit\" name=\"slet\" value=\"Slet\"></td></form></tr>";
}
print"</table>";
Avatar billede -kenner- Nybegynder
05. august 2005 - 17:38 #6
hele min print skal jo være inde i while løkkrn, da der skal oprettes mange flere rækker, så den anden løkker skal jo være inden i, og skal den ikke også være betinget på noget a la: while($i != 10) eller sådan noget, så der ikke kommer flere muligheder end 10?
Avatar billede -kenner- Nybegynder
06. august 2005 - 12:06 #7
Jeg har ændret lidt i koden, for at den viser alle 10 muligheder. Nu bliver selected vuderet individuelt, som det skal, men nu er den begyndet på noget helt andet. Den første række har mulig hed for at vælge: 1-10, den anden har 1-10 og 1-10, altså 2 af hvert tal, den tredie har 3x1-10 osv. se det her: www.kenda.1go.dk/StopStavgangNu/ssn2.php

Jeg tror at det skyldes at $option har et punktum før lighedstegnet, da det gør at den næste variabel bliver tilknyttet, men så bliver den jo ved på den måde, når den begynder på næste række, hvordan kan man undgå det?

Kode:
$i = 1;
while ($i <= 10){
    $checked = ($row['antal'] == $i) ? ' selected' : '';
    $options .= '<option value="'.$i.'"'.$checked.'>'.$i.'</option>';
    $i++;
}

$antal = "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\" name=\"antalform\"><input type=\"hidden\" name=\"antalid\" value=\"{$row["id"]}\"><select name=\"antallet\" onchange=\"java script:this.form.submit();\">".$options."</select></form>";
Avatar billede -kenner- Nybegynder
07. august 2005 - 17:04 #8
Hmm.

Jeg løste det sådan her, men jeg giver point, for at du gad bruge tid på det :):
$total = 10;
Print"<select name=\"antallet\" onchange=\"java script:this.form.submit();\">";
    for($c = 1; $c <= $total; $c++)
    {
        if($row['antal'] == $c)
        {
        print"<option value=\"$c\" selected>$c</option>";
        }
        else
        {
        print"<option value=\"$c\">$c</option>";
        }
    }
    print"</select>";
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