select multiple

On array jonka näytän select multiplena jotta siitä voisi valita haluamansa:

[0] => aaa
[1] => bbb
[2] => ccc

No kun valinnat on tehty niin ne tallenetaan:

foreach ( $_POST['menu'] as $k ){
  $menu .= $k.",";
}

Eli jos on kaikki valittu niin loppu muoto on "aaa,bbb,ccc,". No nyt jos sitten tallennankin vain 2 kohdan on loppu muoto "ccc,".

Kysynkin siis oisko mahdollista jotenkin saada kaikki pilkut näkyviin oikeaan järjestykseen vaikka vain yksi kohta olisi valittu? Eli siis näin ",,ccc," tai "aaa,,,"? Itselläni ei enään leikkaa.
6590
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

$array = array('aaa', 'bbb', 'ccc');
$menu = "";

for($i = 0; $i < current($_POST['menu']); $i )
$menu .= ",";

foreach($_POST['menu'] as $m)
if(isset($array[$m]))
$menu .= $array[$m].",";

for($i = end($_POST['menu']); $i < sizeof($array) - 1; $i )
$menu .= ",";

Äänestä


  • IT-Rex kirjoitti:

    jos edellinen vastaukseni oli jäänyt epäselväksi:

    > $input = array('ccc','aaa');

    Vai $input = array(2,0);

    Äänestä

  • IT-Rex kirjoitti:

    jos edellinen vastaukseni oli jäänyt epäselväksi:

    Kiitos vaan molemmille mutta sain sen jo toimimaan

    global $final_menu,$menu;

    $array = array('aaa', 'bbb', 'ccc');

    foreach ( $_POST['menu'] as $m )
      $menu[$m] = $m;

    foreach ( $array as $n )
      if ( isset ( $menu[$n] ) && $menu[$n] == $n ) $final_menu .= $n.",";
      else $final_menu .= ",";

    echo $final_menu;

    Sitä en tiedä voisko ton tehdä järkevämminkin mutta ainakin ajaa asiansa.

    Äänestä

  • ............... kirjoitti:

    > $input = array('ccc','aaa');

    Vai $input = array(2,0);

    >>> Vai $input = array(2,0);

    Sori, mutta mitä tarkoitit ?!

    Äänestä

Kommentoi aloitusta


nooboon kirjoitti:

On array jonka näytän select multiplena jotta siitä voisi valita haluamansa:

[0] => aaa
[1] => bbb
[2] => ccc

No kun valinnat on tehty niin ne tallenetaan:

foreach ( $_POST['menu'] as $k ){
  $menu .= $k.",";
}

Eli jos on kaikki valittu niin loppu muoto on "aaa,bbb,ccc,". No nyt jos sitten tallennankin vain 2 kohdan on loppu muoto "ccc,".

Kysynkin siis oisko mahdollista jotenkin saada kaikki pilkut näkyviin oikeaan järjestykseen vaikka vain yksi kohta olisi valittu? Eli siis näin ",,ccc," tai "aaa,,,"? Itselläni ei enään leikkaa.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu