Thoraxxx Skrevet 13. august 2007 Skrevet 13. august 2007 Jeg bruker en tabell i mysql til å motta data fra en rullgardinliste med multiselect. I tabellen kommer dataene inn slik: data1-komma-data2-komma-data3. Jeg vil hente ut disse dataene igjen, iform av en rullgardinliste med multiselect. Valgene i denne rullgardinlisten blir hentet fra en annen tabell. Eks: * Alle valgene i rullgardin listen hentet fra tabell "alle": 23,24,26,77 * Data som skal bli "selected" i rullgardinlisten hentet fra tabell "valgt": 23,26 Dermed blir valgene 23 og 26 valgt i rullgardinlisten. Er det noen som kan hjelpe meg med dette Har prøvd å lete meg fram med google, men det ga ingen resultater
Gjest Slettet+142 Skrevet 13. august 2007 Skrevet 13. august 2007 (endret) // hent "alle" til array $alle ... //henter "valgt" $sql = "SELECT felt FROM valgt WHERE noe"; $q = mysql_query($sql); $r = mysql_fetch_assoc($q); // antal at sql kun skal returnere én rad $valgt = explode(",", $r["felt"]); //lager multiselect echo '<select multiple size="5" name="navn">'."\n"; foreach($alle as $felt){ echo '<option value="'.$felt.'"'.((in_array($felt, $valgt) ? ' selected' : '').'>'.$felt.'</option>'."\n"; } echo "</select>\n"; ? Endret 13. august 2007 av Slettet+142
Thoraxxx Skrevet 13. august 2007 Forfatter Skrevet 13. august 2007 (endret) // hent "alle" til array $alle ... //henter "valgt" $sql = "SELECT felt FROM valgt WHERE noe"; $q = mysql_query($sql); $r = mysql_fetch_assoc($q); // antal at sql kun skal returnere én rad $valgt = explode(",", $r["felt"]); //lager multiselect echo '<select multiple size="5" name="navn">'."\n"; foreach($alle as $felt){ echo '<option value="'.$felt.'"'.((in_array($felt, $valgt) ? ' selected' : '').'>'.$felt.'</option>'."\n"; } echo "</select>\n"; ? 9274490[/snapback] Ja det virker riktig. Eneste er at jeg får feilmeldinger om linjen med <option value> og linjen under, hele tiden Edit: Tusen takk forresten Endret 13. august 2007 av mariusmk
Martin A. Skrevet 14. august 2007 Skrevet 14. august 2007 (endret) // hent "alle" til array $alle ... //henter "valgt" $sql = "SELECT felt FROM valgt WHERE noe"; $q = mysql_query($sql); $r = mysql_fetch_assoc($q); // antal at sql kun skal returnere én rad $valgt = explode(",", $r["felt"]); //lager multiselect echo '<select multiple="multiple" size="5" name="navn">'."\n"; foreach($alle as $felt){ echo '<option value="'.$felt.'"'.((in_array($felt, $valgt) ? ' selected' : '').'>'.$felt.'</option>'."\n"; } echo "</select>\n"; ? 9274490[/snapback] Tror heller jeg ville gjort noe slikt: PHP <?php // hent "alle" til array $alle $alle = array(); for( $i = 0; $i < 30; $i++ ) { $alle[] = $i; } ///henter "valgt" //$sql = "SELECT felt FROM valgt WHERE noe LIMIT 1"; //$q = mysql_query($sql); //$r = mysql_fetch_assoc($q); $r = array( 'felt' => "10, 13, 2, 4" ); $somefield = explode( ',', $r['felt'] ); $html = "<select multiple name='something' size='10'>"; foreach( $alle as $a ) { $html .= (in_array( $a, $somefield )) ? "<option value='{$a}' selected='selected'>{$a}</option>" : "<option value='{$a}'>{$a}</option>"; } $html .= "</select>"; echo $html; ?> EDIT: Der satt'n Endret 14. august 2007 av M4rTiN
Martin A. Skrevet 14. august 2007 Skrevet 14. august 2007 (endret) *lalalalallalalala* Jeg skrev faktisk ingenting her. Lese innlegget bedre er noe jeg aldri har lært meg. Endret 14. august 2007 av M4rTiN
Gjest Slettet+142 Skrevet 14. august 2007 Skrevet 14. august 2007 Hehe Er ikke alltid man får med seg alt, nei
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå