Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da badaze
    Ecco uno script che avevo scritto tempo fa. Dovrebbe fare per te.
    [/code]
    Non devo spostare da una select all'altra .. ma spostare i valori della stessa select sopra o sotto nella stessa select.. praticamente devo cambiarne l'ordinamento..
    Mettiamo che l'ordinamento lo riesco a cambiare con javascript.. adesso il problema stà nel recuperare l'indice modificato.. da javascript riesco a farlo ovviamente, il problema è in php..
    vi faccio un esempio..
    codice:
    <select name="selListbox[]" size="10" id="selListbox[]"  style="width:300px;">
    <option value="1">Valore 1</option>
    <option value="2">Valore 2</option>
    <option value="3">Valore 3</option></select>
    Ho quindi questa select che ha tre items.. mettiamo che sposto l'item "Valore 3" nella posizione di "Valore 2". Bene.. adesso devo recuperare tutti i valori della select e gli indici modificati.. e qui nascono i problemi col php.. in quanto:
    1) non riesco a recuperare i valori non selezionati.. cioè per recuperare un valore devo selezionarlo
    2)Il ciclo.. con un ciclo for o foreach riesco a recuperare il valore ma non certo l'indice
    Voglio l'alt+s anche per FF

  2. #12
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Jarno
    forte come idea...ma pone problemi che una volta lasciai inrisolti anche io...

    generare un mega form che faccia un maxi aggiornamento della tabella con un colpo unico?
    o effettuare 1 form per ogni riga che sia inviato ogni volta che si effettua una modifica?
    o realizzare espedienti e soluzioni ad hoc come cerchi te?

    te potresti con javascript creare una variabile da passare via post composta da "id1°,id2°,id3°,..." e poi utilizzarla lato server per elaborare il mega query di aggiornamento

    parli di checklist ma presumo (dall'uso di option) sia un select
    comunque basta tu usi options.length e options[i].value per recuperare gli id in ordine

    oppure la figata potrebbe essere che ad ogni modifca dell'ordine fai un invio in ajax che aggiorni in modo molto più semplice il database
    hehe.. avevo pensato a tutte queste opzioni.. anche a quella in ajax ma cacchio.. non voglio complicarmi la vita.. cmq quella di ordinare un elemento alla volta facendo un update comunque rompe le scatole.. perchè devi tener conto che devi modificare anche la sequenza del record che precede o segue quello che stai spostando.. che palle..
    Voglio l'alt+s anche per FF

  3. #13
    Originariamente inviato da dops

    2)Il ciclo.. con un ciclo for o foreach riesco a recuperare il valore ma non certo l'indice
    avevo ragione a pensare che suonava male dall'inizio...

    anyway... puoi recuperare anche l'indice.
    Codice PHP:
    foreach($_POST as $key => $value) {
      echo 
    $key ." - " .$value ;

    basta prendere o scartare con una if gli indici da escludere.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #14
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Originariamente inviato da dops
    Non devo spostare da una select all'altra .. ma spostare i valori della stessa select sopra o sotto nella stessa select.. praticamente devo cambiarne l'ordinamento..
    Mettiamo che l'ordinamento lo riesco a cambiare con javascript.. adesso il problema stà nel recuperare l'indice modificato.. da javascript riesco a farlo ovviamente, il problema è in php..
    vi faccio un esempio..
    codice:
    <select name="selListbox[]" size="10" id="selListbox[]"  style="width:300px;">
    <option value="1">Valore 1</option>
    <option value="2">Valore 2</option>
    <option value="3">Valore 3</option></select>
    Ho quindi questa select che ha tre items.. mettiamo che sposto l'item "Valore 3" nella posizione di "Valore 2". Bene.. adesso devo recuperare tutti i valori della select e gli indici modificati.. e qui nascono i problemi col php.. in quanto:
    1) non riesco a recuperare i valori non selezionati.. cioè per recuperare un valore devo selezionarlo
    2)Il ciclo.. con un ciclo for o foreach riesco a recuperare il valore ma non certo l'indice
    Infatti lo sapevo. Ma il mio codice ti indica come creare al volo le variabili "hidden" di cui hai bisogno. Spostare da una select ad un altra ti consente di vedere come funziona il mio script.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #15
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da piero.mac
    avevo ragione a pensare che suonava male dall'inizio...

    anyway... puoi recuperare anche l'indice.
    Codice PHP:
    foreach($_POST as $key => $value) {
      echo 
    $key ." - " .$value ;

    basta prendere o scartare con una if gli indici da escludere.
    che ti devo dire.. non mi è chiaro.. come lo prendi l'indice.. in quell'esempio non lo prendi.. prindi solo chiave e valore.. devi impostare un variabile da incrementare per prendere anche l'indice.. però scusami.. davvero credo che ancora non mi sono fatto capire..
    Voglio l'alt+s anche per FF

  6. #16
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Originariamente inviato da dops
    che ti devo dire.. non mi è chiaro.. come lo prendi l'indice.. in quell'esempio non lo prendi.. prindi solo chiave e valore.. devi impostare un variabile da incrementare per prendere anche l'indice.. però scusami.. davvero credo che ancora non mi sono fatto capire..
    Ma hai provato il mio script ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #17
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da badaze
    Ma hai provato il mio script ?
    non l'ho scritto ma ho capito cosa intendi.. vai a valorizzare il campo hidden ed è quello che stò cercando di fare.. visto che con php non riesco a recuperare gli indici degli elementi non selezionati..
    Voglio l'alt+s anche per FF

  8. #18
    Originariamente inviato da dops
    non l'ho scritto ma ho capito cosa intendi.. vai a valorizzare il campo hidden ed è quello che stò cercando di fare.. visto che con php non riesco a recuperare gli indici degli elementi non selezionati..
    basta mettere un value di default e l'indice sara' sempre selezionato

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #19
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    cmq.. ricapitolando:
    mettiamo che al caricamento della pagina popoli la select con i dati del db. quindi una tabella con campo: id, descrizione, sequenza:
    codice:
    <select name="ciccio">
    <option value="id">descrizione</option>
    </select>
    e ad allo stesso tempo popolo un campo nascosto in modo da far venire fuori una cosa del genere:
    codice:
     <input name="alloptions" type="hidden" id="alloptions" value="1-0,2-1,3-2," />
    Dove nel value del campo hidden "1" è l'id del record e 0 è il campo "sequenza" etc..
    Ho pensato quindi di fare in modo che nelle funzioni javascript di spostamento in alto o in basso dell'item selezionato, vado a ripopolare quel campo nascosto con il nuovo ordinamento..
    Poi quando l'utente invia il form vado a recuperare questo campo nascosto ed in qualche modo vado ad aggiornare la tabella con il nuovo ordinamento.. cosa ne pensate? grande stronzata ?
    Voglio l'alt+s anche per FF

  10. #20
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,373
    Ma xche fare delle cose cosi complicate ?
    Ecco il codice per spostare gli elementi di una select
    codice:
    <?php 
    if (isset($_POST["invia"])) {
     $index = 1;
     $array = $_POST["s"];
     if (is_array($array)) {
      foreach ($array as $key => $value) {
    	 print "elemento $key - valore $value 
    ";
    	} // foreach ($array as $key => $value)
     } // if (is_array($array))
    } // if (isset($_POST["invia"]))
    
    ?>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
       // MONTER une option *************************************** 
       function upOption(sSelectId) 
       { 
          var oSelect = document.getElementById(sSelectId); 
    			if (oSelect.selectedIndex > 0) {
     			 var oCurOption    = oSelect.options.item(oSelect.selectedIndex);
    			 var oOption       = document.createElement("OPTION");
    		   newSelectedIndex  = oSelect.selectedIndex-1;
           oSelect.options.add(oOption,newSelectedIndex);
    			 oOption.value     = oCurOption.value; 
    			 oOption.innerText = oCurOption.innerText ; 
    			 oSelect.options.remove(oSelect.selectedIndex);
    			 oSelect.selectedIndex = newSelectedIndex;
    			}	
       }    
        
       // DESCENDRE une option *************************************** 
       function downOption(sSelectId) 
       { 
          var oSelect = document.getElementById(sSelectId); 
    			if (oSelect.selectedIndex < oSelect.options.length-1) {
     			 var oCurOption    = oSelect.options.item(oSelect.selectedIndex);
    			 var oOption       = document.createElement("OPTION");
    		   newSelectedIndex  = oSelect.selectedIndex+2;
           oSelect.options.add(oOption,newSelectedIndex);
    			 oOption.value     = oCurOption.value; 
    			 oOption.innerText = oCurOption.innerText ; 
    			 oSelect.options.remove(oSelect.selectedIndex);
    			 oSelect.selectedIndex = newSelectedIndex-1;
    			}			
       }  
    
    function preSub(aForm) {
     indice  = 0;
     oSelect = document.getElementById('s1');
     nbElem  = oSelect.length;
     for (i=0;i<nbElem;i++) {
      curOption       = oSelect.options.item(i);
      var hiddenVar   = document.createElement('INPUT');
    	hiddenVar.name  = 's['+indice+']';
    	hiddenVar.type  = 'hidden';
    	hiddenVar.value = curOption.value;
      aForm.appendChild(hiddenVar);
    	indice++;
     } // for (i=0;i<nbElem;i++)
     return true;
    } // function preSub()
    //-->
    </script>
    
    </head>
    <body>
    <form name="myform" action="test2196.php" method="post" onsubmit="return preSub(this)">
    
    <select id="s1" size="5" >
    <option value="10000">10000</option>
    <option value="20000">20000</option>
    <option value="30000">30000</option>
    <option value="40000">40000</option>
    <option value="50000">50000</option>
    <option value="60000">60000</option>
    <option value="70000">70000</option>
    <option value="80000">80000</option>
    <option value="90000">90000</option>
    </select>
    
    
    <input type="button" value="Up" onclick="upOption('s1')">
    <input type="button" value="Down" onclick="downOption('s1')">
    <input type="submit" value="Submit" name="invia">
    </form>
    
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2026 vBulletin Solutions, Inc. All rights reserved.