Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    checkBox per selezione multipla

    Ciao a tutti.
    Dopo avere estratto i record e messi in un array, vorrei selezionare solo alcuni di essi tramite una checkbox. Il problema che ne riesco a selezionare solo uno. Cambiando il suo valore in tabella da zero a 1. Come faccio a farlo per più di un record?
    questi sono i file:

    stroricocliente.php
    Codice PHP:


    <html>
    <form name="form1" method="get" action="stamparicevutafinale.php">
      <?
    include("connessione.php");

    $IdCliente=$_GET['IdCliente'];


    $sql1="SELECT * from Noleggi where IdCliente='$IdCliente'";
    $risultato_query1=mysql_query($sql1,$connessione)or die("Query Non Eseguita"); 


    $risultato_query1=mysql_query($sql1,$connessione);


    echo
    "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";

       echo
    "<tr>";
        echo
    " <td><table width=\"590\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
            echo
    " <tr> ";
            echo
    "  <td class=\"intestazione\"width=\"84\">IdNoleggio</td>";
                echo
    "  <td class=\"intestazione\"width=\"84\">IdCliente</td>";
            
    //echo"  <td class=\"intestazione\"width=\"84\">IdProdotto</td>";
            
    echo"  <td class=\"intestazione\"width=\"84\">NomeFilm</td>";
            echo
    "  <td class=\"intestazione\"width=\"84\">Data Aff.</td>";
             echo
    " <td class=\"intestazione\"width=\"84\">Data Rest.</td>";
            
             echo
    "  <td class=\"intestazione\"width=\"84\">Danneggiato</td>";
             echo
    "  <td class=\"intestazione\"width=\"84\">Stampa Ricevuta</td>";
            echo
    " </tr>";
            
             while(
    $riga1=mysql_fetch_array($risultato_query1)){ 
         
                  
    $IdNoleggio=$riga1["IdNoleggio"]; 
                  
    $IdCliente=$riga1["IdCliente"];
                   
    $IdProdotto=$riga1["IdProdotto"];
                 
    $NomeFilm=$riga1["NomeFilm"];
                  
                 
    $DataAffitto=$riga1["DataAffitto"]; 
                
                 
    $DataRestituzione=$riga1["DataRestituzione"]; 
        
                 
    $Danneggiato=$riga1["Danneggiato"]; 
                 
    $StampaRicevutaFinale=$riga1["StampaRicevutaFinale"]; 
                 
    $class $class == 'colore1' 'colore2' 'colore1'

    if (
    $Danneggiato==1)
         
    $VerificaDanneggiato="SI";
    else
           
    $VerificaDanneggiato="NO";

             echo
    "<table width=\"590\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";

             echo
    " <tr class= \"$class\"> "
            echo
    "<td    width=\"84\" ><A HREF=\"aggiornanoleggiobis.php?IdNoleggio=$IdNoleggio\">$IdNoleggio</a></td>"
        
    //echo" <td  width=\"196\" class= \"$class\" ><A HREF=\"delete2.php?IdMateriale=$IdMateriale\">$IdCliente</td>";
        
    echo"<td    width=\"84\" >$IdCliente</td>"
        
    //echo"<td    width=\"84\" >$IdProdotto</td>"; 
        
    echo"<td    width=\"84\" >$NomeFilm</td>"
        echo
    "<td    width=\"84\" >$DataAffitto</td>"
        echo
    "<td    width=\"84\" >$DataRestituzione</td>"
        echo
    "<td    width=\"84\" >$VerificaDanneggiato</td>"
        echo
    "<td    width=\"84\" >
            <input name=\"chkStampaRicevutaFinale\" type=\"checkbox\" id=\"StampaRicevuta\" value=\"1\">
          </form></td>"

        
        echo
    "</tr>"
             }
             echo
    "</table>";


    ?>
      


          <? echo" <td> <input name=\"txtIdNoleggio\" type=\"hidden\" id=\"txtIdNoleggio\" value=\"$IdNoleggio\"></td> ";?>
      </p>
      


      
        <input type="submit" name="Submit" value="STAMPA">
      </p>
    </form>

    </html>
    stamparicevutafinale.php

    Codice PHP:
    include("connessione.php");

    $chkStampaRicevutaFinale=$_GET['chkStampaRicevutaFinale'];

    $IdNoleggio=$_GET['txtIdNoleggio'];



    //'$id' è tra apicette perchè il valore lo deve prendere come numero e non come       stringa 
    $sql="UPDATE Noleggi SET StampaRicevutaFinale='$chkStampaRicevutaFinale'   where IdNoleggio='$IdNoleggio'";
    $risultato_query=mysql_query($sql,$connessione)or die("Query Non Eseguita".mysql_error()); 
    Come posso sistemarli?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    per le selezioni multiple hai vari approcci

    1- select multiple
    codice:
         <select name="test[]" multiple="multiple" >
    	  <option value="1">1</option>
    	  <option value="2">2</option>
    	  <option value="3">3</option>
    	  <option value="4">4</option>
         </select>
    2- checkbox
    codice:
         <input type="checkbox" name="test[]" value="1" />1 
    
         <input type="checkbox" name="test[]" value="2" />2 
    
         <input type="checkbox" name="test[]" value="3" />3 
    
         <input type="checkbox" name="test[]" value="4" />4

    3- elementi div+js
    e' lunga da spiegare ... e non credo la vorresti usare come soluzione ma nel caso...

  3. #3
    io vorrei settare a 1 il campo StampaRicevutaFinale di alcuni record e non tutti .
    Codice PHP:

    .... echo"<td    width=\"84\" >
            <input name=\"chkStampaRicevutaFinale\" type=\"checkbox\" id=\"StampaRicevuta\" value=\"1\"> ... 
    per poi aggiornarlo nel file
    stamparicevutafinale.php

    Codice PHP:
    ...$sql="UPDATE Noleggi SET StampaRicevutaFinale='$chkStampaRicevutaFinale'   where IdNoleggio='$IdNoleggio'";... 
    Solo che non riuscendo a farlo ciclare, me ne setta uno solo.

    Come potrei addatare al mio caso, dove estraggo dinamicamente i valori della checkbox dalla tabella (impostati per default a 0) il seguente codice?
    codice:
    <input type="checkbox" name="test[]" value="1" /> 1 
    
         <input type="checkbox" name="test[]" value="2" /> 2 
    
         <input type="checkbox" name="test[]" value="3" /> 3 
    
         <input type="checkbox" name="test[]" value="4" /> 4

  4. #4
    ho modificato i 2 file cosi. rendendo chkStampaRicevutaFinale[] che contenga i valori flaggati. Per poi farlo ciclare nel file stamparicevutafinale.

    ma non funziona

    storicocliente.php


    Codice PHP:
    <?
    .....echo"<td    width=\"84\" >
            <input name=\"chkStampaRicevutaFinale[]\" type=\"checkbox\" id=\"StampaRicevuta\" value=\"1\">
          </form></td>"

        
        echo
    "</tr>"
             }
             echo
    "</table>";
    ?>
      


          <? echo" <td> <input name=\"txtIdNoleggio\" type=\"hidden\" id=\"txtIdNoleggio\" value=\"$IdNoleggio\"></td> ";?>
      </p>...........
    stamparicevutafinale.php
    Codice PHP:
    include("connessione.php");

    $chkStampaRicevutaFinale=$_GET['chkStampaRicevutaFinale[]'];

    $IdNoleggio=$_GET['txtIdNoleggio'];

    $lunghezza=$chkStampaRicevutaFinale.length;

    for(
    $i=0i<=$Lunghezza;$i++) {  //scorro l'array $chkStampaRicevutaFinale[]

    if ($chkStampaRicevutaFinale==1// se trovo la variabile settata a 1 aggiorno il mio campo nella tabella
         
    $sql="UPDATE Noleggi SET StampaRicevutaFinale='$chkStampaRicevutaFinale'   where IdNoleggio='$IdNoleggio'";
        
    $risultato_query=mysql_query($sql,$connessione)or die("Query Non Eseguita".mysql_error()); 

    come posso sistemarlo?

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    1- modifica il metodo del form da get a post. Non Submittare mai un form in get! Post e' il metodo corretto.

    2- il fatto che i checkbox hanno nome "nome[]" fa si che lo script incaricato di leggere l'input capisca che tali dati sono un array e crei di conseguenza l'opportuna struttura dati

    3- le stringhe in php sono stringe e bbasta non sono oggetti come in java o finti-oggetti come in js, per contare gli elementi di un array count( $arrayDiDati ) ;

    4- pre ciclare array di cui non conosci la forma o conteuto :
    foreach($arrayDiDati as $index => $value)
    {
    // codice
    }


    Ok ora puoi correggere il codice

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.