Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    non valorizza campi richiamati dal POST. problema su incremento/array

    Ciao ,
    Problema di inserimento dati nel db

    Ho una pagina che carica n tabelle quante scelte dal cliente
    codice:
             echo "<form action=\"invio_form.php?id_user=$idus&tipoadd=$tips&contins=$conta\" method=\"post\">";
                    echo "<input type=\"hidden\" name=\"tipopage\" value=\"conta_bilita\">";
                    for ($i = 0 ; $i < $conta ; $i++) {
    
                        echo "<table>
    			<tr>
    			<td colspan=\"2\">tabella num $i per inserimento contabili</td>
    			</tr>
    			<tr>
    			<td>numero fattura</td>
    			<td><input type=\"text\" name=\"numero$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>data fattura</td>
    			<td><input type=\"text\" name=\"dataf$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>data scadenza</td>
    			<td><input type=\"text\" name=\"datas$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>importo fattura+iva</td>
    			<td><input type=\"text\" name=\"imp_fi$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>acconti ricevuti</td>
    			<td><input type=\"text\" name=\"accri$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>residuo fattura</td>
    			<td><input type=\"text\" name=\"residuo$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>numero nota credito</td>
    			<td><input type=\"text\" name=\"numeronota$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td>data nota credito</td>
    			<td><input type=\"text\" name=\"datanota$i\" value=\"\"></td>
    			</tr>
    			<tr>
    			<td><input type=\"reset\" name=\"reset\" value=\"RESETTA VALORI\"></td>
    			</tr>
    		</table>";
                    }
    
                    echo	"
    <input type=\"submit\" name=\"inviacontabilita\" value=\"INVIA\">
    </form>
    	";
    il form invia le tabelle ad una pagina che dovrà inserire i dati all'interno del database e scrivere un file csv.

    codice:
    session_start();
                        $ciclocount = $_GET['contins'];
                        $nome_utente = $_SESSION['nomeut'];
                        $fiscale_cliente =  $_SESSION['fisc'];
                        $idanagra = $_SESSION['idanag'];
                        for ($i = 0 ; $i < $ciclocount ;$i++) {
                            $num_fatt = $_POST['numero'];
                            $data_fatt = $_POST['dataf'];
                            $data_scadenza = $_POST['datas$i'];
                            $imp_fa = $_POST['imp_f$i'];
                            $acconto = $_POST['accri$i'];
                            $residuo_fattura = $_POST['residuo$i'];
                            $numero_nota = $_POST['numeronota$i'];
                            $data_nota = $_POST['datanota$i'];
                            $sql = "INSERT INTO $tab_contabili (id_contabili , id_anag , num_fattura , data_fattura ,data_scadenza, imp_fa,acconti_ric , residuo_fatt , num_nota, data_nota) VALUES (default , '$idanagra' , '$num_fatt' , '$data_fatt' , '$data_scadenza' , '$imp_fa' , '$acconto' , '$residuo_fattura' , '$numero_nota' , '$data_nota');";
                            $query = mysql_db_query($db_nome , $sql);
                            if (!$query) {
                                die ("inserimento tabella $i fallito --> ".mysql_error());
                            }
                            $letturamode = "rb";
                            $path_file = "deb/$nome_utente-$fiscale_cliente-conta.csv";
                            $crea_file = "ab";
                            $filecsv = fopen($path_file , $crea_file);
                            $insert = i valori della che scrivo nel db\n";
                            $stringa = fwrite($filecsv, $insert);
                            $scrittura_file = fwrite($filecsv, $stringa);
                            $ok = $ok++;
                        }
                        header("Location:inserimento_deb.php?id_user=$idus&tipoadd=$tips");
                    }
    il problema e che le variabili che dovrei valorizzare con il POST non vengono riempite , sicuramente è un problema di array, ma non so come risolverlo.
    qualcuno mi può aiutare
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    infatti pare siano sbagliati i nomi dei campi... prova ad aprire il sorgente dal browser e verifica i tag INPUT che attributo hanno come "name"... dovrebbero essere qualcosa come <input type="text" name="numero1" value="">, <input type="text" name="numero2" value=""> e così via, ma quando fai il ciclo per leggere i valori usi sempre $_POST['numero'], cioè accedi $ciclocount volte sempre allo stesso campo, che tra l'altro non esiste.

    Dovresti invece usare...

    nel primo codice:
    Codice PHP:
    ...
    <
    td><input type=\"text\" name=\"numero[$i]\" value=\"\"></td>
    ... 
    e nel secondo:
    Codice PHP:
    ...
    $num_fatt $_POST['numero'][$i];
    ... 
    per tutti i campi indicizzati... salvo vi siano altre sviste...

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ti ringrazio era proprio quello , ho risolto inserendo tutto in array

    codice:
    ...
    $num_fatt[$i] = $_POST['numero'][$i];
    ...
    e valorizza le variabili , grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prego!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.