Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    aggiornare la tabella con i dati di una listbox ordinata

    Ciao a tutti,
    ho un tabella con i seguenti campi: id, descrizione, sequenza.
    Popolo una listbox con i record di questa tabella dove dò al value di ogni <option> l'id del record e all'interno dell'option stampo il campo 'descrizione' del db. L'utente quindi seleziona un elemento della lista e lo può spostare in alto o in basso.. una volta fatta questa operazione deve salvare questo ordinamento nel db e + precisamente deve modificare il campo 'sequenza' (credo).
    Qualcuno mi dà un consiglio su come potrei procedere ?
    Thanx
    Voglio l'alt+s anche per FF

  2. #2
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    dai non ci voglio credere che a nessuno è mai capitato di dover recuperare i valori (non selezionati) di una listbox.. in realtà a me servirebbe recuperare l'indice oltre al value visto che lo sposto.. e che mi serve spostato.. però non ne sono sicuro..
    Voglio l'alt+s anche per FF

  3. #3
    quello che hai scritto puo' essere interpretato in parecchi modi....

    Almeno io, che pero' son tosto, non ho capito granche' di uello che ti serve

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

  4. #4
    L'utente quindi seleziona un elemento della lista e lo può spostare in alto o in basso
    :master:
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    dai mica ho scritto in aramaico
    cmq ci riprovo: tramite javascript faccio in modo che l'utente possa ordinare gli elementi di una listbox spostandoli (tramite pulsanti "su" - "giu"). Questi elementi sono in realtà dei record del db, vorrei quindi aggiornare il database in modo da ottenere lo stesso ordine che l'utente ha fatto.. aggiornando quindi un campo "sequenza" con l'indice della listbox ordinata..
    Se ancora non avete capito, fà niente
    Voglio l'alt+s anche per FF

  6. #6
    Originariamente inviato da dops
    dai mica ho scritto in aramaico
    cmq ci riprovo: tramite javascript faccio in modo che l'utente possa ordinare gli elementi di una listbox spostandoli (tramite pulsanti "su" - "giu"). Questi elementi sono in realtà dei record del db, vorrei quindi aggiornare il database in modo da ottenere lo stesso ordine che l'utente ha fatto.. aggiornando quindi un campo "sequenza" con l'indice della listbox ordinata..
    Se ancora non avete capito, fà niente
    beh, confrontati con quanto hai scritto prima... qui c'e' una parolina "magica" che chiarisce meglio e che e' javascript..... non ho detto che non era chiaro, ma che poteva essere interpretato in parecchi modi.

    Associa un valore numerico all'ordinamento del form che fai con js e poi lo andrai a recuperare nella pagina che si occupa dell'udate...

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

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da piero.mac
    beh, confrontati con quanto hai scritto prima... qui c'e' una parolina "magica" che chiarisce meglio e che e' javascript..... non ho detto che non era chiaro, ma che poteva essere interpretato in parecchi modi.

    Associa un valore numerico all'ordinamento del form che fai con js e poi lo andrai a recuperare nella pagina che si occupa dell'udate...
    si me ne ero accorto
    ehm.. scusa in che senso "associa un valore numerico all'ordinamento del form" ?
    Voglio l'alt+s anche per FF

  8. #8
    Originariamente inviato da dops
    si me ne ero accorto
    ehm.. scusa in che senso "associa un valore numerico all'ordinamento del form" ?
    posta un campione del tuo form tanto per non scrivere a vuoto....

    solo un esempio:

    se le righe vengono numerate

    <input type='pippo' name = 'ordine[]' value='tuo_id' >

    dovrebbe uscire fuori un array $_POST['ordine'][0] => tuo_id

    a questo punto becchi l'indice numerico come ordinale e l'id come puntatore al record e dovrebbe essere fatta....

    buttata la....

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

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ecco uno script che avevo scritto tempo fa. Dovrebbe fare per te.

    File : test2196.php

    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">
    <!--
    function sposta(sel1,sel2) {
     if (sel1.selectedIndex < 0) {
      return;
     } // if (sel1.selectedIndex < 0)
     //-------- Ricavo la riga selezionata
     var oCurOption    = sel1.options.item(sel1.selectedIndex);
     //-------- Creo una nuova opzione
     var oOption       = document.createElement("OPTION");
     //-------- La aggiungo alla seconda select
     sel2.options.add(oOption);
     //-------- Assegno i valori della prima select alla seconda
     oOption.value     = oCurOption.value; 
     oOption.text      = oCurOption.text ;	
     //-------- Elimino la riga spostata
     elimina(sel1);
    } // function sposta(sel1,sel2)
    
    function elimina(unSelect) {
     if (unSelect.selectedIndex < 0) {
      return;
     } // if (unSelect.selectedIndex < 0)
     unSelect.options.remove(unSelect.selectedIndex)
    } // function elimina(unSelect)
    
    function preSub(aForm) {
     indice  = 0;
     oSelect = document.getElementById('s2');
     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=">" onclick="sposta(document.getElementById('s1'),document.getElementById('s2'))">
    <input type="button" value="<" onclick="sposta(document.getElementById('s2'),document.getElementById('s1'))">
    
    <select id="s2" name="s2" size="5" multiple="true" >
    </select>
    <input type="button" value="-" onclick="elimina(document.getElementById('s2'))">
    
    
    <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

  10. #10
    Originariamente inviato da dops
    dai mica ho scritto in aramaico
    cmq ci riprovo: tramite javascript faccio in modo che l'utente possa ordinare gli elementi di una listbox spostandoli (tramite pulsanti "su" - "giu"). Questi elementi sono in realtà dei record del db, vorrei quindi aggiornare il database in modo da ottenere lo stesso ordine che l'utente ha fatto.. aggiornando quindi un campo "sequenza" con l'indice della listbox ordinata..
    Se ancora non avete capito, fà niente
    forte come idea...ma pone problemi che una volta lasciai irrisolti 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
    Originariamente inviato da piero.mac
    posta un campione del tuo form tanto per non scrivere a vuoto....

    solo un esempio:

    se le righe vengono numerate

    <input type='pippo' name = 'ordine[]' value='tuo_id' >

    dovrebbe uscire fuori un array $_POST['ordine'][0] => tuo_id

    a questo punto becchi l'indice numerico come ordinale e l'id come puntatore al record e dovrebbe essere fatta....

    buttata la....
    questa è una figata massima...grande piero :rollo:
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

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.