Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    form select multiplo e php che non funziona...

    Ciao a tutti, ho un problema che non riesco bene a capire:

    Ho esigenza di selezionare dei dati da una lista (oggetto select multiplo) e passarli ad un'altra pagina.
    Visto che i dati presenti nella lista sono parecchi ho pensato di visualizzare due liste e quando premo su un dato della prima inserirlo nella seconda, questo per far vedere le opzioni selezionate:

    i due select sono questi:

    codice:
    <select name="s1" size="15" id="s1" onChange="sposta()" style="width:50mm;">
    <?php do {
    echo "<option value=\"".$rSed['COD']."\">".ucfirst($rSed['COG'])." ".ucfirst($rSed['NOM'])."</option>";
    } while ($rSed = mysql_fetch_assoc($Sed)); ?>			
    </select>
    e la seconda semplicemente:

    codice:
    <select name="eProf" size="15" id="eProf" onChange="indietro()" style="width:50mm;" multiple>
    </select>
    Il passaggio dei dati avviene con le due funzioni:

    codice:
    function sposta() {
    	document.fPW.eProf[document.fPW.eProf.length]=new Option(document.fPW.s1.options[document.fPW.s1.selectedIndex].text, document.fPW.s1.options[document.fPW.s1.selectedIndex].value, false);
    	document.fPW.s1.options[document.fPW.s1.selectedIndex]=null;
    	}
    
    function indietro() {
    	document.fPW.s1[document.fPW.s1.length]=new Option(document.fPW.eProf.options[document.fPW.eProf.selectedIndex].text, document.fPW.eProf.options[document.fPW.eProf.selectedIndex].value, false);
    	document.fPW.eProf.options[document.fPW.eProf.selectedIndex]=null;
    	}
    Ora per far capire al php che gli passo una sorta di array devo far seguire al nome della select "[]" e poi selezionare tutti i valori:

    codice:
     
    function conferma(){
       var i;
       document.fPW.eProf.type="select-multiple";
       for(i=0; i<=document.fPW.eProf.length; i++){
          document.fPW.eProf.options[i].selected=true;
          }
       document.fPW.eProf.id="eProf[]";
       document.fPW.eProf.name="eProf[]";
    
       return true;
       }

    Quindi a questo punto mi aspetto che tutti i valori all'interno del select eProf[] siano selezionati e quindi posso passarli alla seconda pagina dove li leggo con un foreach

    ovvero:

    codice:
    foreach($eProf as $eP) { echo $eP; }
    Però mi viene restituito l'errore:

    Warning: Invalid argument supplied for foreach()


    Qualcuno mi sa spiegare dove sbaglio?

    Grazie mille...
    gigio



  2. #2
    Ho risolto specificando all'atto della creazione della nuova riga della seconda lista che era selezionata.... però non ho capito perchè prima non funzionasse....

    gigio

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.