Visualizzazione dei risultati da 1 a 3 su 3

Discussione: checkbox in array

  1. #1

    checkbox in array

    ho un problema con una checkbox in un'array. Praticamente faccio caricare a video tante righe quanti sono i miei immobili (IDIMMOBILE) e poi faccio compilare altri campi per ogni riga caricata. Ha sempre funzionato, fino a quando non ho inserito un campo checkbox. Funziona comunque, ma al momento del salvataggio solo per il campo checkbox ho il seguente problema....ovvero, non viene salvato il checkbox relativo alla riga dove ho cliccato, ma gli stessi campi checkbox vengono salvati conseguenzialmente. Es. se ho 4 righe, e fleggo il checkbox sulla seconda e quarta, mentre tutti gli altri dati vengono salvati correttamente, la checkbox mi viene salvata come se avessi "ceccato" la prima e la seconda riga. Ho notato, utilizzando lo strumento per sviluppatori di google, nella parte dei campi passati al post, questa cosa.....


    IDIMMOBILE[]:1
    checkbox[]:1
    CTU[]:15.000
    ASTA[]:12.000


    IDIMMOBILE[]:2
    CTU[]:18.000
    ASTA[]:15.000


    IDIMMOBILE[]:3
    CTU[]:
    ASTA[]:


    IDIMMOBILE[]:4
    checkbox[]:1
    CTU[]:17.000
    ASTA[]:17.000


    Praticamente mentre se gli altri campi sono vuoti vengono passati comunque (tipo CTU e ASTA dell'immobile 3), il campo checkbox se vuoto perchè non toccato non viene neanche passato ed è come se a quel punto l'array si appiattisse mettendo il checkbox = 1 del secondo al primo e dell'ultimo al secondo posto.


    allego la parte di codice, contenente il ciclo che carica i dati e come faccio visualizzare i dati:

    Codice PHP:
    if (mysql_num_rows($result5) > 0) {
    echo "<ul>";                   
    while($row5 = mysql_fetch_array($result5,MYSQL_ASSOC)) {                        
    while($row9 = mysql_fetch_array($result9,MYSQL_ASSOC)) {                               
     if ($row5["IdAzioniImmobili"]==$row9["IdAzioniImmobili"]) { $sel_in = " CHECKED =\"CHECKED\"";}                                            
    }    
            ?>                                                    
    <tr>                                  
              <td><label for="IDImmobile">ID Immobile</label></td>
              <td><input value="<?=$row5["IDImmobile"];?>" name="IDImmobile[]"  type="text" class="" id="IDImmobile[]"  size="11" maxlength="10" /></td>    
                                    
              <td><label for="checkbox_prova">checkbox</label</td>                                    
    <?                                    
    if ($row5["checkbox_prova"]!=0) { $sel_in2 " CHECKED =\"CHECKED\"";}           
     
    ?>
                <td><input  type="checkbox" name="checkbox_prova[]" <?=$sel_in2;?> value="1" id="checkbox_prova[]"/></td>                                    
                  <?$sel_in2 0?>  
                                  
                <td><label for="imp_ctu">Imp Ctu</label></td>
               <td><input value="<?=number_format($row5["imp_ctu"],0,",",".");?>" name="imp_ctu[]"  type="text" class="" id="imp_ctu[]"  size="11" maxlength="10" /></td>                                    
        </tr>        
    }                            
    echo "<ul>";       
     }

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Devi in qualche modo "legare" la checkbox all'elemento associato perché, se non specificato esplicitamente, PHP non riceve un array associativo; questo è il motivo per cui hai solo i valori delle checkbox selezionate.

    Quindi devi specificare nel form la chiave dell'array, con una semplice variabile numerica incrementata ad ogni ciclo.

    Codice PHP:
    <td><input  type="checkbox" name="checkbox_prova[<?=$i;?>]" <?=$sel_in2;?> value="1" id="checkbox_prova_<?=$i;?>"/></td>

    E probabilmente ti converrà fare altrettanto anche con gli campi del form.

    PS: nota che ho modificato l'attributo id del tag <input>: le parentesi quadre non sono ammesse negli id in HTML
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Grazie della risposta...solo una cortesia, nel post come recupero il tutto? Anche li dovrei legare il tutto ad un indice, tipo, $_post [checkbox_prova].[$i] che naturalmente non funziona

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.