Gå til innhold

Multiple list verdier


Anbefalte innlegg

Hei!

 

Skal sette opp en funskjon nå hvor man skal ha muligheten til å velge flere verdier i en list med multiple aktivert, og det er jo ikke noe problem.

Problemet kommer først når jeg skal hente ut verdiene, for jeg klarer kun å hente ut den første som blir valgt.

 

Har prøvd å finne løsninger, men finner ingen ting som kan hjelpe meg.

For å hente ut verdien nå bruker jeg bare

 

$_POST['liste_valg'];

 

Noen som kan hjelpe meg?

Lenke til kommentar
Videoannonse
Annonse

Skal du bruke multiple må du sette navnet på select-boksen som et array.

Noe du enkelt hadde funnet ut om du hadde søkt på "select multiple php" på google

 

Feks:

<?php

echo "<form action='' method='post'>
<select name='liste_valg[]' multiple='multiple'>
<option>Test</option>
<option>Test2</option>
</select>
<input type='submit' name='submit' />
";

print_r( $_POST );

?>

Lenke til kommentar

Dette har jeg fått til, problemet mitt er at dette er en sånn sak hvor man flytter en verdi fra en list til en annen, ved hjelp av javascript. Men da klarer den bare å flytte videre en av verdiene.

 

<?php

echo	"<script language='JavaScript'>

function move_first_to_second(value) {
 var len = document.getElementById('second').length;
 document.getElementById('second').options[len] = new Option(value);
}

function remove_elem(idx) {
 var len = document.getElementById('second').length;
 if (len <= 0) return;
 var combo = document.getElementById('second');
 var j=0;
 for (var i = 0; i < combo.options.length; i++) {
   if (i == idx) {
     combo.options[i].selected = false;
     combo.options[i] = null;
   } else {
     document.getElementById('second').options[j] = new Option(combo.options[i].value);
     j++;}}}

</script>";
echo "<form action='' method='POST'>";
echo "<select name='first[]' id='first' size='5'  style='width:150px;' multiple='multiple'>";
echo "<option value='Joakim'>Joakim</option>";
echo "<option value='Jarl'>Jarl</option>";
echo "</select>
<input type='button' id='move'  value='>' onclick=\"move_first_to_second(document.getElementById('first').value);\"><br>
<input type='button' id='remove' value='<' onclick=\"remove_elem(document.getElementById('second').selectedIndex);\"></td>
<select name='second' id='second[]' size='5' style='width:150px;'>
</select><br />
<input type='submit' name='preview' value='Videre til oversikt'><input type='submit' name='reg' value='Registrer' />
</form>";

print_r($_POST);

?>

Lenke til kommentar

du kan vel spinne gjennom options med en for loop og sjekke om de er merket.

 

noe ala dette:

 

var selectbox = document.getElementById('minselect');

 

var antall = selectbox.length;

 

var streng;

 

for(var i=0;i<antall;i++){

 

if(selectbox.selected){

 

streng += selectbox.value+",";

}// if

}// for

 

uhh ok svarte bare på første post med javascript.. :p

 

du har nå en kommaseparert liste.. denne listen kan du splitte

 

var nyArray = streng.split(",") ;

 

du kan spinne gjennom denne ELLER legge inn de nye verdiene automatisk i første løkken..

 

var selectbox = document.getElementById('minselect');

var selectbox2 = document.getElementById('minselect2');

 

var antall = selectbox.length;

var antall2 = selectbox2.length;

 

var streng;

 

// først tømmer vi selectbox 2

 

for(var j=0;j<antall2;j++){

 

selectbox2.option[j] = null;

}

 

// eller vi kan bruke selectbox2.options.length = 0;

 

 

// vi kan nå legg inn de nye verdiene

 

for(var i=0;i<antall;i++){

 

if(selectbox.selected){

 

selectbox2.option = new Option(selectbox.option.value,selectbox.option.value);

// bruker value på begge fordi det så ut som du brukte dette ...

 

 

 

 

 

}// if

}// for

 

 

Må sikkert endres på (litt trøtt.... :p) men jeg ville brukt onchange direkte på selectboxen i stedet for en knapp.. (tror jeg) onchange='flyttTilNeste()' uten argument da du vet hvilken selectbox du snakker om. Evt brukt this.id som argument og fått med id-en til selectboksen :)

Endret av idos
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...