[php] checkbox, array e cicli

Pubblicità

cinto

Nuovo Utente
Messaggi
4
Reazioni
0
Punteggio
24
ciao a tutti!,

il problema è nella pagina r.php non avviene il controllo della clausola!? Se invece faccio una echo di $value il valore stampato corrisponde con l articolo che seleziono nella pagina a.php

nella pagina a.php ho il seguente codice (dove selziono gli articoli), creo l array e mi passo l'id.

Codice:
while ($row1 = mysql_fetch_array($res1,MYSQL_ASSOC)){
    
    $id = $row1['id'];

    echo "<td width='16%' > <div class='contenuto'> <center> Inserisci  
                <input type='checkbox' name='carrello[]' value='$id'> ";
}
nella pagina r.php recupero i valori delle checkbox:

la echo del foreach funziona correttamente stampandomi il valore della chechbox selezionata/e, attraverso $value vorrei estrapolare nel db il record corrispondente, ma l echo del while mi stampa 2 righe vuote.. cazzarola....

Codice:
foreach ($_POST['carrello'] as $key => $value){
                    
    echo "Hai selezionato la checkbox con valore: $value<br />";

    $res = mysql_query("SELECT codparte,desestesa,preuni,urlimg 
                    FROM filepartif 
                    WHERE id='$value' 
                    ORDER BY 'codparte' ASC");

        while ($row = mysql_fetch_array($res,MYSQL_ASSOC)){
        
            $nome_art = $_POST['codparte'] ;
            
            echo "
            <tr><td> <div class='contenuto'> <center> $nome_art </center> </div> </td> </tr> ";
        
        }
    

    }

qualcuno è in grado di farmi chiarezza?
 
perchè usi $_POST["codparte"] per prelevare i dati dal record del db? con $_POST prendi i valori che ti sono stati inviati da un form!

prova a modificare il codice sostituendo $_POST["codparte"] con $row["desestesa"]

nel caso avessi capito male io la questione fammi sapere
 
airex ha detto:
perchè usi $_POST["codparte"] per prelevare i dati dal record del db? con $_POST prendi i valori che ti sono stati inviati da un form!

prova a modificare il codice sostituendo $_POST["codparte"] con $row["desestesa"]

nel caso avessi capito male io la questione fammi sapere

si era proprio quella!? Quando me ne sono accordo ho continuato ad andare avanti!!!

Grazie cmnq!!
ci
 
nella pagina a.php a fianco alla checkbox <input type='checkbox' name='carrello[]' value='$id' > ho il campo <input type="text" name="quantita"> dove bisogna inserire un valore.

nella pagina di recupero dati, r.php, ho un ciclo foreach per l estrazione dei valori dell articolo selezionato e la creazione di una tabella.

Il problema è che se inserisco un valore nel campo quantità (a.php), premo invio, nella pagina r.php non mi visualizza il valore inserito.
Mi visualizza il valore inserito solo se nella pagina precedente inserisco per tutti gli articoli presenti una quantità.
Questo perchè il valore del nome del campo (name="quantia") è uguale per tutti gli articoli, per ovviare a ciò devo per forza crearmi un nuovo array? Posso lavorare con l array già creato? E' l unica soluzione?

Scusate il giro di parole, spero di essere stato chiaro.

Grazie a tutti


Codice:
foreach ($_POST['carrello'] as $key => $value){

                  $res = mysql_query("SELECT codparte,desestesa,preuni,urlimg 
                                    FROM filepartif 
                                    WHERE id='$value' 
                                    ORDER BY 'codparte' ASC");

                          $nome_art = $row['codparte'] ;
                        $des_art = $row['desestesa'] ;
                        $prez_art = $row['preuni'] ;
                        $img_art = $row['urlimg'] ;
                        $quantita = $_POST['quantita'] ;
                        
                        $img = explode("/",$img_art,5);
                        $img_art1 = $img[4];

                        echo "
                            <tr><td> <div class='contenuto'> <center> $nome_art </center> </div> </td>
                                <td> <div class='contenuto'> <center> $des_art </center> </div> </td>
                                <td> <div class='contenuto'>
                                        <center> <img src='$img_art1' width='130px' height='100px' >
                                              </center> </div> </td>
                                <td> <div class='contenuto'> <center> $prez_art $euro </center> </div> </td>
                                <td> <div class='contenuto'> <center> n$pallino $quantita </center> </div> </td>
                                <td> <div class='contenuto'> <center> $euro </center> </div> </td> </tr>
                            <tr bgcolor='yellow'>
                                <td colspan='6' style='font-size:1px;'> &nbsp; </td> </tr>
                            <tr> <td colspan='6' style='font-size:5px;'> &nbsp; </td> </tr> ";

                  }
 
riesci a rendere meno intrigata la spiegazione e la domanda? se ci riesci mi dai una grossa mano e di conseguenza è piu' facile che ti dia una risposta sensata
 
airex ha detto:
riesci a rendere meno intrigata la spiegazione e la domanda? se ci riesci mi dai una grossa mano e di conseguenza è piu' facile che ti dia una risposta sensata
ciao, in effetti era un po' incasinata, ho cercato di sistemarla

a.php

<form action="r.php" method="post">
<input type='checkbox' name='carrello[]' value='$id' > ho il campo <input type="text" name="quantita">
<input type="submit" name="cassa">
</form>

r.php

foreach ($_POST['carrello'] as $key => $value){

estraggo i valori inserendoli in una tabella

}


Il problema è che se inserisco la quantita per un solo articolo il valore non viene visualizzato in r.php
(Questo perchè il nome del campo (name="quantita") è uguale per tutti gli articoli)

Il valore viene visualizzato solo se nella pagina a.php inserisco la quantità per tutti gli articoli presenti.

Per ovviare a ciò devo per forza crearmi un array anche per quantita? Posso lavorare con l array già creato? Ci sono altre soluzioni?

Grazie
 
a occhio farei una piccola correzione

Codice:
<input type='checkbox' name='carrello[]' value='$id' >
sarebbe il caso che diventi
Codice:
<input type='checkbox' name='carrello[]' value='<? echo $id; ?>' >

perchè non trasformare anche "quantità" in array? magari ti tornerebbe utile (secondo me sarebbe la strada più comoda da seguire)
 
Pubblicità
Pubblicità
Indietro
Top