Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Listbox multipli - utilizzo i valori selezionati

    Ho un LISTBOX multiplo da cui faccio selezionare alcune scelte.
    Non riesco a testare l'elenco dei valori selezionati poichè mi da questo messaggio di errore :

    Warning: Invalid argument supplied for foreach() on line 7

    L'esempio l'ho prefo da un articolo su questo forum.


    Mi sapete aiutare ?

    Grazie


    Ecco il codice
    -------------------------------------------------
    <?

    echo "-".$_POST["lan"]."-"; // <-- SCRIVE 1 solo valore, es.IT

    foreach ($_POST["lan"] as $val)
    {
    echo("+"."$val
    .");
    $lang.=$val." ";
    $ch.=$lang;
    }

    ?>



    <form NAME="newentry" action=listbox.php method=post>
    <select name="lan" size="5" multiple>
    <option value="UK" selected>English</option>
    <option value="DE">German</option>
    <option value="FR">French</option>
    <option value="IT">Italian</option>
    <option value="ES">Spanish</option>
    </select>

    <input type=submit name=submit value=ok>
    </form>

    __________________________________________________ _______

  2. #2
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    il codice php è corretto, per l'html al nome della select dai 'lan[]', così php lo tratterà come un array

  3. #3

    Funziona !!

    Grande !
    Ora funziona.

    Grazie mille

    ciao

  4. #4

    Listbox a selezione multipla ( continua )

    Ora una domanda ancora più sciocca:
    come faccio ad avere l'elenco dei valori disponibili nel listbox ?
    Non quelli selezionati, ma quelli selezionabili.
    Lo so, è facile; ma in questo momento non ci riesco.



    <html>

    <?

    echo "-".$_POST["lan"]."-"; // <-- SCRIVE 1 solo valore, es.IT

    foreach ($_POST["lan"] as $val)
    {
    echo("+"."$val
    .");
    $lang.=$val." ";
    $ch.=$lang;
    }




    ?>



    <form NAME="newentry" action=listbox.php method=post>
    <select name="lan[]" size="5" multiple>
    <option value="UK" selected>English</option>
    <option value="DE">German</option>
    <option value="FR">French</option>
    <option value="IT">Italian</option>
    <option value="ES">Spanish</option>
    </select>

    <input type=submit name=submit value=Add>
    </form>

  5. #5

    Re: Listbox a selezione multipla ( continua )

    Scusami che cosa vuoi fare???

  6. #6

    Ecco cosa vorrei fare..

    Vorrei avere a disposizione l'elenco dei vari selezionabili nel LISTBOX.
    Con la :
    foreach ($_POST["lan"] as $val)
    ottengo i volori selezionati.

    Ma vorrei avere anche quelli dispobibili.
    Lo so, li ho impostato io nella definizione del form... ma se volessi riutilizzarli in seguito ?
    E questo che non mi riesce.

    Mi sapete aiutare ?

    Grazie

  7. #7
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    a php arrivano solo quelli selezionati

  8. #8

    Veramente ? a PHP arrivano solo gli elementi selezionati ?

    Veramente ? a PHP arrivano solo gli elementi selezionati ?

    Ipotizziamo di costruire con un Javascript un LISTBOX.
    Se poi con PHP voglio avere gli elementi presenti nel LISTBOX ( tutti, anche quelli non selezionati ).. non posso ?

    O meglio, forse non ho altra scelta che impostarmi una tabella PHP nel Javascript mentre compone il ListBox.

    Giusto ?

  9. #9
    ti conviene utilizzare 2 multibox

    nella prima quelle disponibile, nella seconda quelle selezionate e con funzioni javascript controlli lo spostamento degli elementi da selezionati a disponibili e viceversa ... così con 2 array hai tutte e 2 ....

    oppure un altro metodo con una multibox è quella di fare la differenza degli array tra quella completa e gli elementi selezionati così ti ritrovi quelli disponibili

    fai tu

    se ti serve del codice chiedi pure
    ciao

  10. #10

    GRAZIE !

    OK, grazie.

    Ho già 2 listbox, muovo quelli selezionati a sinistra --> nel listbox di destra.

    Poi vorrei con PHP scrivere su file quelli che ho a destra.

    Non ci riesco.

    ecco il codice ( il gran parte è preso da questo forum ) :
    __________________________________________________ ____

    <script>
    // Due argomenti, sono due frecce, o --> o <--
    function sposta(direzione){
    j=0;
    form=document.form1
    if(direzione=='-->'){
    partenza=form.prima
    arrivo=form.seconda
    }
    else{
    partenza=form.seconda
    arrivo=form.prima
    }

    non_sel=new Array()
    sel=new Array()
    //per ogni opzione di partenza controlla:
    for(i=0;i<partenza.options.length;i++){
    //se è selezionata, mettila nell'array sel
    if(partenza.options[i].selected){
    partenza.options[i].selected=false
    sel.push(partenza.options[i])
    }
    //altrimenti non è selezionata, quindi mettila nell'array non_sel
    else{
    non_sel.push(partenza.options[i])
    }
    }
    //per ogni opzione di arrivo
    for(i=0;i<arrivo.options.length;i++){
    //aggiungi all'array sel tutti i valori di arrivo
    sel.push(arrivo.options[i])
    }
    function sorting(a,b){
    if(a.text<b.text)return -1
    if(a.text>b.text)return 1
    else return 0
    }
    sel.sort(sorting)
    non_sel.sort(sorting)
    //azzera le due select
    partenza.options.length=0;
    arrivo.options.length=0;
    //Per ogni valore in non_sel
    for(i=0;i<non_sel.length;i++){
    //scrivilo in partenza
    partenza.options[i]=non_sel[i]
    }
    //Per ogni valore in sel
    for(i=0;i<sel.length;i++){
    //scrivilo in arrivo
    arrivo.options[i]=sel[i]


    }
    }
    </script>

    <?
    // ecco, qui vorrei conoscere gli elementi presenti nel secondo ListBox
    echo ("presenti nel LISTBOX di destra" );
    ?>

    <form name="form1">
    <select name="prima" multiple size=7>

    <option value='1'> 1 pippo </option>
    <option value='2'> 2 pluto </option>
    <option value='3'> 3 paperino </option>
    <option value='4'> 4 aaaaa </option>
    <option value='5'> 5 bbbbbb </option>
    <option value='6'> 6 ccccccccc </option>

    </select>

    <input type="button" value=">>" onClick="sposta('-->')" ><input type="button" value="<<" onClick="sposta('<--')" >

    <select name="seconda" multiple size=7>

    </select>


    __________________________________________________ ____

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.