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

    Inserire dati in MySQL per ogni <form>

    Buonasera.

    Ho letto la Guida base e la Guida pratica di PHP del sito.
    Sto provando ad applicare e modificare il codice proposto per la creazione di un Blog, per un mio applicativo.

    Lo script in questione è il seguente, salvato con nome job_sottomultipli.php. Questa pagina riceve da job_index.php il valore $_POST['ins_s'] (mi dice quante volte far apparire il form di inserimento dati nella pagina job_sottomultipli.php).

    Faccio un esempio:
    la pagina job_index.php mi dice che devo far apparire 5 volte il form per l'inserimento dati nella pagina job_sottomultipli.php. Come faccio ad identificare univocamente i valori dei 5 form da passare poi a MySQL?

    Codice PHP:
    <?php
    // valorizzazione delle variabili con i parametri dal form
    if(isset($_POST['submit'])&&($_POST['submit']=="Invia"))
        {
        if(isset(
    $_POST['id_job']))
            {
            
    $id_job addslashes(filter_var($_POST['id_job'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['lunghezza']))
            {
            
    $lunghezza addslashes(filter_var($_POST['lunghezza'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['larghezza']))
            {
            
    $larghezza addslashes(filter_var($_POST['larghezza'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['rotazione']))
            {
            
    $rotazione addslashes(filter_var($_POST['rotazione'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['pz_richiesti']))
            {
            
    $pz_richiesti addslashes(filter_var($_POST['pz_richiesti'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['pz_fatti']))
            {
            
    $pz_fatti addslashes(filter_var($_POST['pz_fatti'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['pz_differenza']))
            {
            
    $pz_differenza addslashes(filter_var($_POST['pz_differenza'], FILTER_SANITIZE_STRING));
            }
        if(isset(
    $_POST['descrizione']))
            {
            
    $descrizione addslashes(filter_var($_POST['descrizione'], FILTER_SANITIZE_STRING));
            }
     
    // inclusione del file della classe
    include "funzioni_mysql.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();
     
    $t "job_sottomultipli"// nome della tabella
    $v = array ($id_job,$lunghezza,$larghezza,$rotazione,$pz_richiesti,$pz_fatti,$pz_differenza,$descrizione); // valori da inserire
    $r =  "id_job,lunghezza,larghezza,rotazione,pz_richiesti,pz_fatti,pz_differenza,descrizione"// campi da popolare
     
    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);
    echo 
    "Sottomultipli del JOB inseriti con successo.";
    // disconnessione
    $data->disconnetti();
    }else{
    // controllo sulla variabile inviata per querystring
    if( (!isset($_POST['id_job'])) || (!is_numeric($_POST['id_job'])) )
        {
        
    // reindirizzamento del browser nel caso in cui la variabile non venga validata
        
    header("Location: job_index.php");
        }else{
        if(isset(
    $_POST['submit'])&&($_POST['submit']=="Sottomultipli")&&($_POST['ins_s'] > 0) )
            {
            
    $ins_s $_POST['ins_s'];
            
    $id_job $_POST['id_job'];
            
            
    // form per l'inserimento
            
    echo "<h1>Inserisci sottomultipli del JOB</h1>\n";
            echo 
    "<form action=" $_SERVER['PHP_SELF'] . " method=\"post\">";
            
            for (
    $mod 1$mod <= $ins_s; ++$mod) {
            echo 
    "Descrizione:
    \n"
    ;
            echo 
    "<input name=\"descrizione\" type=\"text\" maxlength=\"255\">
    "
    ;
            echo 
    "Pannello:
    "
    ;
            echo 
    "<input name=\"lunghezza\" type=\"text\" size=\"4\" maxlength=\"4\">";
            echo 
    "*";
            echo 
    "<input name=\"larghezza\" type=\"text\" size=\"4\" maxlength=\"4\">
    "
    ;
            echo 
    "Rotazione:
    "
    ;
            echo 
    "<input name=\"rotazione\" type=\"text\" size=\"1\" maxlength=\"1\">
    "
    ;
            echo 
    "Richiesti:
    "
    ;
            echo 
    "<input name=\"pz_richiesti\" type=\"text\" size=\"5\" maxlength=\"5\">
    "
    ;
            echo 
    "Fatti:
    "
    ;
            echo 
    "<input name=\"pz_fatti\" type=\"text\" size=\"5\" maxlength=\"5\">
    "
    ;
            echo 
    "Differenza:
    "
    ;
            echo 
    "<input name=\"pz_differenza\" type=\"text\" size=\"5\" maxlength=\"5\">
    "
    ;
            echo 
    "<input name=\"id_job\" type=\"hidden\" value=" $id_job " />";
            echo 
    "
    "
    ;
            echo 
    "
    "
    ;
        
            }
            echo 
    "<input name=\"submit\" type=\"submit\" value=\"Invia\">";
            echo 
    "</form>";
            echo 
    "Ok";
            }else{
            
    header("Location: job_index.php");
            }
        }
    ?>

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    la pagina PHP job_sottomultipli prenderà in input il numero

    Codice PHP:
    $n $_POST['ins_s'
    Quindi stamperà un unico form ma con tanti campi quanti richiesto, con un ciclo

    Codice PHP:
    echo "<form>";
    for (
    $i=0$i<$n$i++)
    {
       echo 
    "<input type=\"text\" name=\"lunghezza_".$i."\">";
       echo 
    "<input type=\"text\" name=\"larghezza_".$i."\">";
       echo 
    "<input type=\"text\" name=\"rotazione_".$i."\">";
    }
    echo 
    "</form>"
    In fase di recupero dati farà lo stesso ciclo

    Codice PHP:
    for ($i=0$i<$n$i++)
    {
       
    $larghezza ""$lunghezza ""$rotazione "";
       if (isset(
    $_POST["larghezza_".$i])) { $larghezza $_POST["larghezza_".$i]; }
       if (isset(
    $_POST["lunghezza_".$i])) { $lunghezza $_POST["lunghezza_".$i]; }
       if (isset(
    $_POST["rotazione_".$i])) { $rotazione $_POST["rotazione_".$i]; }

       
    $query "INSERT INTO tabella (larghezza, lunghezza, rotazione) VALUES (".$larghezza.", ".$lunghezza.", ".$rotazione.")

    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

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