Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833

    passare piu' valori selezionati dal checkbox

    Ciao a tutti, volevo sapere come si puo', se si puo', passare a una pagina piu' valori che sono stati selezionati dalla stessa checkbox.
    Mi spiego meglio leggo dei record di un file, e quando li stampo, c'e' una checkbox
    per ogni record, ora come si per salvare il fatto che e' stato selezionato es il primo
    e il terzo record e passare i dati a un'altra pagina?


    $sql = " SELECT CAST(MRPRID AS CHAR(3) CCSID 280)....
    FROM $LNKLIB.MRMOBJP where MROBJ like '$subobj%' and MRLIB like '$sublib%' order by MRLIB, MROBJ FETCH FIRST ".$cursor." ROWS ONLY";

    while ($row = db2_fetch_array($stmt))
    {
    if(!$row=="") {
    $costumerMRJID = $row[3];
    $costumerMRLIB = $row[4];

    <input type="radio" name="user" value="<?php echo($contalink); ?>" />

    <input type="hidden" name="a_<?php echo($contalink);?>" value="<?php echo($costumerMRJID);?>" />
    <input type="hidden" name="b_<?php echo($contalink);?>" value="<?php echo($costumerMRLIB);?>" />


    <td width="120" bgcolor="#CCCCCC"><font face="Times New Roman"> <?php echo($costumerMRJID);?></font></td>
    <td width="140" bgcolor="#CCCCCC"><font face="Times New Roman"> <?php echo($costumerMRLIB);?></font></td>


    Come vedete adesso c'e' un radiobotton ma io dovrei sostituirlo con una checkbox
    per dare la possibilita' di effettuare piu' scelte.

    Consigli, grazi.

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    basta che al name del campo html assegni un array del tipo

    codice:
    <input type="checkbox" name="scelta_multipla[]" value="scelta1" /> 
    <input type="checkbox" name="scelta_multipla[]" value="scelta2" />
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Scusa ma non so come gestire il tutto.
    Se hai voglia puoi' farmi un esempio nel sql che postato sopra di come gestire il checkbox?

    Piu' che altro come faccio nell'altra pagina a gestire il valore di ogni campo presente in scelta_multipla[]

    Ciao grazie

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da guarnieri
    Scusa ma non so come gestire il tutto.
    Se hai voglia puoi' farmi un esempio nel sql che postato sopra di come gestire il checkbox?

    Piu' che altro come faccio nell'altra pagina a gestire il valore di ogni campo presente in scelta_multipla[]

    Ciao grazie
    dipende come vuoi salvare i dati sul db.

    Immagino che queste scelte possano essere degli id di riferimento ad un altra tabella.

    Se vuoi salvare questi id in un campo unico separato da un ; ad esempio puoi implodere l'array e salvare i dati come una stringa qualsiasi:

    $campo_id = implode(";", $_POST['scelta_multipla']); // occhio però che dovresti controllare che in $_POST['scelta_multipla'] ti arrivi quello che ti aspetti

    se invece devi salvarli su una tabella di relazione (ad esempio "id_oggetto" -> id_scelta).

    dovrai fare un ciclo:
    codice:
    foreach($_POST['scelta_multipla'] as $val) {
      if(is_numeric($val )) { // o qualsiasi tipo di controllo vuoi effettuare
        $query = "INSERT INTO tabella_relazione (id_oggetto, id_scelta) VALUES ($id_oggetto, $val)";
       ....
      }
    }
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Allora in pratica devo passare piu' campi per ogni record, es.

    Libreria Oggetto Tipo Testo Stato
    CHGPF §§SAM *PF §§sam prova *ACT
    CHGPF FRANKIE *LF descrizione *dtaq *ACT
    VISION NEWPF01 *DTAQ logical file *ACT


    Mettiamo che spunti la checkbox sul primo e sul terzo record, devo passare
    all'altra pagina quasi tutti i dati che visualizzo di tutti e due i record.

    Perche' poi dovro' fare delle azioni sui singoli oggetti quindi dovro' chiamare un programma
    con il nome dell'oggetto la libreria ecc.., ma questa call la devo fare dentro a un
    ciclo. In pratica per ogni oggetto che leggo fare la call.

    E' possibile farlo?

    Ciao grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Sbaglio mio, non avevo capito il ciclo che mi hai postato.
    Ho aggiunto al valore del checkbox i campi del record e funziona perfettamente.

    Grazie gianiaz

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Un'altra domanda, e' possibile spezzare i campi di ogni record direttamente nel ciclo?
    Mi spiego adesso facendo:

    foreach($_POST['scelta_multipla'] as $val) {
    print ''.$val.'';
    print "
    ";
    }

    1CHGPF §§SAM *PF*ACT
    3CHGPF LNKNAM00FX*PF*ACT
    5CHGPF NEWDTAARA *DTAARA*ACT

    Ottengo i dati dei tre record che ho selezionato, pero' siccome devo testare lo stato
    (*ACT) di ognuno e poi passare il nome dell'oggetto e della libreria ogni volta.

    Ora siccome non posso sapere a priori quanto sono lunghi i campi non posso fare
    substring con posizioni fisse, quindi avevo pensato di farlo ad ogni Blanks visto
    che i campi sono suddivisi da uno spazio, pero' non so come fare.

    Consigli?

    I campi li passo cosi:

    <input type="checkbox" name="scelta_multipla[]" value="<?php echo($contalink),($costumerMRJID),($costumerMRLIB)
    ,($costumerMRMBR),($status); ?>" />

    Ciao grazie

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cioè a ogni checkbox è associata una scelta di 3 elementi?

    per separare una stringa puoi usare la funzione explode, passandogli il carattere di separazione, sia esso uno spazio un ; o qualcos'altro.

    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Aspetta, ad ogni checkbox e' associata una scelta di un record, questo record ha piu'
    elementi es nome, stato, data creazione ecc...

    quindi quando reperisco i dati es. del primo record mi ritrovo giustamente i dati di tutto quel record: CHGPF LNKNAM00FX*PF*ACT

    Ora io devo separare il primo campo, libreria (CHGPF), il secondo nome (LNKNAM00FX) ecc..
    Solo che non posso testare lo spazio perche' quando il nome e' completo non ci sono
    spazi. Vedi LNKNAM00FX*PF*ACT

    Ora secondo te e' possibile passare dei valori di separazione tra campi tipo | in questa?

    <input type="checkbox" name="scelta_multipla[]" value="<?php echo($contalink),($costumerMRJID),($costumerMRLIB)
    ,($costumerMRMBR),($status); ?>" />

    Poi pero' con l'implode come faccio a ottenere tutte le variabile con i rispettivi valori
    $lib =
    $nome=
    ecc...

    Ciao grazie

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ma allora al posto di mettere tutti i dati del record non puoi mettere solo l'id e lato server all'atto dell'inserimento verificare quali campi sono associati all'id selezionato?

    ciao

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.