Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61

    [PHP] Campi di scelta multipla

    Ciao a tutti!

    Vorrei creare, come campo di una form, qualcosa di questo tipo:
    codice:
         
       disponibili                       selezionati
     _____________                      ______________
    |             |      _______       |             |
    |             |     |aggiungi|     |             |
    |             |     |   ->   |     |             |
    |             |      ______        |             |
    |             |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    (ho postato nella sezione php perchè questi campi saranno di numero e di contenuto dinamico rispetto al database)

    Per la precisione mi si presentano due inconvenienti, oltre ovviamente a non conoscere il codice html (o anche il modo per crearlo da dreamweaver) per poter creare una campo del genere. Premetto che il numero di questi "campi" nella form viene deciso da un altro campo della form stessa (settato più sopra, chiamato gironi) che può assumere valore da 1 a 99 (default 1), mentre il contenuto della parte "disponibili" è il risultato di una query su una tabella mysql.

    Vorrei quindi che se il contenuto del campo gironi viene cambiato, la pagina venga immediatamente ricaricata con la differenza di un diverso numero di campi che ho disegnato. Come posso fare per ottenere questo immediato caricamento senza premere ulteriori pulsanti ma solamente il numero desiderato nel menù a tendina?

    L'altro inconveniente riguarda la correttezza dei dati: infatti se all'inizio tutte le occorrenze dei campi creati hanno lo stesso contenuto nella parte "disponibili", se un valore in uno di questi viene spostato nella parte "selezionati", esso deve sparire anche dalla colonna "disponibili" delle altre occorrenze del campo.

    Dato che so di essermi spiegato male faccio un esempio: supponiamo che il campo "gironi" abbia valore 2. I campi del tipo che vi ho disegnato sono quindi appunto 2.

    Situazione iniziale:
    codice:
       disponibili                       selezionati
     _____________                      ______________
    |giorgio      |      _______       |             |
    |carlo        |     |aggiungi|     |             |
    |marco        |     |   ->   |     |             |
    |simone       |      ______        |             |
    |maurizio     |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    
       disponibili                       selezionati
     _____________                      ______________
    |giorgio      |      _______       |             |
    |carlo        |     |aggiungi|     |             |
    |marco        |     |   ->   |     |             |
    |simone       |      ______        |             |
    |maurizio     |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    Poi giorgio viene aggiunto nella colonna "selezionati" del primo girone:
    codice:
       disponibili                       selezionati
     _____________                      ______________
    |carlo        |      _______       |giorgio      |
    |marco        |     |aggiungi|     |             |
    |simone       |     |   ->   |     |             |
    |maurizio     |      ______        |             |
    |             |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    
       disponibili                       selezionati
     _____________                      ______________
    |carlo        |      _______       |             |
    |marco        |     |aggiungi|     |             |
    |simone       |     |   ->   |     |             |
    |maurizio     |      ______        |             |
    |             |     |rimuovi|      |             |
    |             |     |   <-  |      |             |
    |             |                    |             |
    |_____________|                    |_____________|
    E anche nel secondo girone giorgio viene cancellato dalla colonna "disponibili". Ovviamente il contrario dovrebbe succedere nel caso che qualche valore venga rimosso dalla colonna "selezionati".

    Come posso realizzare questo?

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    per incominciare posso dirti che per creare le due finestre puoi utilizzare due select multiple

    ma se usi dreamweaver e non conosci neanche l'html non credo che andrai molto lontano, non è che sia difficile da realizzare, però richiede un po' di tempo e non so quanti ne hanno per fornirti una soluzione dedicata, anche perchè passandoti del codice da modificare lo sapresti utilizzare?

    Errare humanum est, perseverare ovest

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Originariamente inviato da carlo2002
    ma se usi dreamweaver e non conosci neanche l'html non credo che andrai molto lontano, non è che sia difficile da realizzare, però richiede un po' di tempo e non so quanti ne hanno per fornirti una soluzione dedicata, anche perchè passandoti del codice da modificare lo sapresti utilizzare?
    L'html lo conosco, uso dreamweaver comunque per creare questi campi senza dovermi stare a scervellare per inutili errori di creazione e comunque per la velocità, ma per il resto faccio tutto da codice.
    puoi utilizzare due select multiple
    cosa intendi? potresti postarmi il codice? (edit: intendevi questo vero
    codice:
    <select name="select5" size="5">
    ma come potrei creare i due pulsanti aggiungi e rimuovi?)


    per il modo di ricaricare subito la pagina appena modificato il valore di "gironi" nel menu a tendina?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Questo è in breve quello che ho pensato di realizzare fino ad ora:

    Codice PHP:
    <label>disponibili
         <select name="Disponibili" size="5">  //creo un solo campo di scelta multipla dal quale di ricavare i valori 
        <?php
            $lista_squadre 
    "select Nome from Squadre";
            
    $risultato mysql_query($lista_squadre,$conn) or die("Errore nella query: " mysql_error());  // mi connetto al database e ottengo la lista dei nomi delle squadre
            
    $y mysql_fetch_row($risultato);
            while (
    $y)
            {
                echo 
    "<option>".$y[0]."</option>"// riempio il campo di scelta multipla con questi nomi
                
    $y mysql_fetch_row($risultato);
            }
        
    ?>
       
        </select>
        </label>
      </p>
      <?php 
      
    for ($z=1$z<=$var$z++)   // $var è una variabile precedentemente settata dall'utente  che riempie la form
      
    {
          echo 
    "

       //creo un campo di scelta multipla destinato a ricevere i valori con i relativi due bottoni
          <input name=\"Aggiungi\" type=\"button\" value=\"Aggiungi\">
          <input name=\"Rimuovi\" type=\"button\" value=\"Rimuovi\">
          <select name=\"select"
    .$z."\" size=\"5\"></select></p>";
      }
      
    ?>

    Non ho però idea di come innanzitutto riconoscere il campo selezionato nella select Disponibili, e inoltre di come costruire i pulsanti Aggiungi Rimuovi per "trasportare" valori da una parte all'altra.

    Qualcuno potrebbe aiutarmi?

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    per spostare i valori da una parte all'altra serve javascript.
    http://javascript.internet.com/misce...dual-list.html

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.