Gå til innhold

Selected i rullgardinliste med flervalg -mysql


Anbefalte innlegg

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 :innocent: Har prøvd å lete meg fram med google, men det ga ingen resultater :(

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

// 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 av Slettet+142
Lenke til kommentar
// 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 :hmm:

 

Edit: Tusen takk forresten :)

Endret av mariusmk
Lenke til kommentar

 

// 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 av M4rTiN
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...