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

    Piccolo grande aiuto con form...

    Ciao a tutti, è il mio primo post e purtroppo anzichè saluti e baci vi devo esporre un mio problema con un form
    premetto che sono un novellino di php e sto imparando adesso...
    intanto vi spiego quello che "vorrei" fare... perchè magari lo sto facendo nel modo sbagliato e quindi da lì arrivano i miei problemi...
    sto realizzando un form per un inserimento di dati (una richiesta di preventivo x essere precisi).

    l'idea sarebbe:

    1 scelgo un cliente esistente
    (x adesso è un menù a discesa con tutti i clienti, vorrei implementare una qualche forma di autocompletamento, che ho già trovato come script php/js/ajax, solo che non so come passare i dati al file js nell'array tramite mysql)

    2 inserisco altri 2-3 campi di testo

    3 scelgo una filiale da un menu a discesa

    4 in base alla selezione precedente, carico un altro menù a discesa con i nomi dei tizi che lavorano in quella filiale

    5 altro menù a discesa con la "macrocategoria" dell'ordine

    6 in base a questa selezione, fa come quello sopra e si carica la sottocategoria

    7 qualche campo di testo x i dettagli

    8 un qualcosa che dica "aggiungi altro" e fa mettere un'altra volta macrocategoria e sottocategoria"

    9 textarea per le note

    10 finalmente clicco un bottone e mi inserisce il tutto nel db



    la situazione attuale è che ho scritto un po' di codice (assieme ad un amico che mi ha seguito un po' per spiegarmi qualcosa di php), arrivo al punto 5 e non so che fare!

    o meglio, avendo fatto il ciclo per il punto 4 che funziona (ovvero, carica filiale e in base a quella il dipendente) nel volerlo fare anche per il punto 5 quando avviene l'OnChange che ricarica il form e dice che quelle selezioni sono quindi in "selected" nell'option value, si sballa tutto!
    resta in selected solo la filiale ma scompare il selected del dipendente....
    inoltre, non appare la sottocategoria...

    prima di postare il codice, volevo intanto sapere se sto seguendo una via "giusta" o se posso ottimizzare meglio questo form magari cambiando il tipo di inserimento/visualizzazione....
    secondo voi com'è?

    e adesso, ecco il codice della pagina che dovrebbe fare una parte di quello che vorrei...


    <?php
    include("conn.php");
    $message = "";
    if (isset($_POST["salva"]))
    {
    if (!$_POST["cliente"])
    {
    $message = "Deve essere inserito il cliente";
    }
    elseif (!$_POST["filiale"])
    {
    $message = "Deve essere inserita la filiale";
    }
    elseif (!$_POST["mod_pag"])
    {
    $message = "Deve essere inserita la modalità di pagamento";
    }
    else
    {
    $query = "INSERT INTO `preventivi` (`cliente`, `referente`, `tel_referente`, `mail_referente`, `filiale`, `account`, `mod_pag`, `note`) VALUES ('".$_POST["cliente"]."', '".$_POST["referente"]."', '".$_POST["tel_referente"]."','".$_POST["mail_referente"]."', '".$_POST["filiale"]."', '".$_POST["account"]."',
    '".$_POST["mod_pag"]."','".$_POST["note"]."')";
    mysql_query($query) or die ($query."
    ".mysql_error());
    $message = "Inserimento effettuato correttamente, attendere la comunicazione di presa in carico dall'ufficio commerciale";
    }
    }
    echo "

    $message";
    ?>
    </div>
    <form action="ins_prev_new.php" method="post" name="ins_prev" id="ins_prev">
    <div align="center">
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td>Cliente:</td>
    <td></td>
    <?php
    $clienti = "select * from `ana_cli`";
    $lista_clienti = mysql_query($clienti) or die ("non eseguo la query clienti");
    echo "<td><select name=\"cliente\">\n";
    echo "<option value=\"0\">- Selezionare un cliente -</option>\n";
    while ($cli = mysql_fetch_array($lista_clienti,MYSQL_ASSOC))
    {
    echo "<option value=\"".$cli["id_ana_cli"]."\"";
    if (isset($_POST["cliente"]) and $_POST["cliente"] ==
    $cli["id_ana_cli"])
    {
    echo " selected";
    }
    echo ">".$cli["rag_soc"]."</option>\n";
    }
    echo "</select></td></tr>";
    ?>
    <tr><td><span class="Stile1">Se il cliente non è presente, cliccare qui per inserirlo in anagrafica</span></td>
    </tr>
    <tr>
    <td>Referente:</td>
    <td></td>
    <td><input name="referente" type="text" id="referente" value="<?php echo isset($_POST["referente"])?$_POST["referente"]:"";?>" size="35" maxlength="50" />*</td>
    </tr>
    <tr>
    <td>Tel. Referente:</td>
    <td></td>
    <td><input name="tel_referente" type="text" id="tel_referente" value="<?php echo isset($_POST["tel_referente"])?$_POST["tel_referente"]:"";?>" size="30" maxlength="30" />*</td>
    </tr>
    <tr>
    <td>Mail Referente:</td>
    <td></td>
    <td><input name="mail_referente" type="text" id="mail_referente" value="<?php echo isset($_POST["mail_referente"])?$_POST["mail_referente"]:"";?>" size="35" maxlength="50" />*</td>
    </tr>
    <tr>
    <td>Filiale:</td>
    <td></td>
    <?php
    $filiali = "select * from `ana_fil`";
    $lista_filiali = mysql_query($filiali) or die ("non eseguo la query filiali");
    echo "<td><select name=\"filiale\">\n";
    echo "<option value=\"0\">- Filiale di appartenenza -</option>\n";
    while ($fil = mysql_fetch_array($lista_filiali,MYSQL_ASSOC))
    {
    echo "<option value=\"".$fil["id_fil"]."\"";
    if (isset($_POST["filiale"]) and $_POST["filiale"] ==
    $fil["id_fil"])
    {
    echo " selected";
    }
    echo ">".$fil["filiale"]."</option>\n";
    }
    echo "</select></td></tr> <tr><td>Account:</td><td></td>";
    if ($_POST["filiale"])
    {
    $account = "select * from `ana_acc` where `filiale` = '".$_POST["filiale"]."' order by nominativo asc";
    $lista_account = mysql_query($account) or die ("non eseguo la query account");
    echo "<td><select name=\"nominativo\">";
    while ($acc = mysql_fetch_array($lista_account,MYSQL_ASSOC))
    {
    echo "<option value=\"".$acc["nominativo"]."\"";
    if (isset($_POST["nominativo"]) and $_POST["nominativo"] ==
    $acc["nominativo"])
    {
    echo " selected";
    }
    echo ">".$acc["nominativo"]."</option>\n";
    }
    }
    else
    {
    }
    echo "</select></td></tr>";
    ?>
    </tr>
    <tr>
    <td>Categoria Ordine:</td>
    <td></td>
    <?php
    $servizi = "select * from `servizi`";
    $lista_servizi = mysql_query($servizi) or die ("non eseguo la query servizi");
    echo "<td><select name=\"servizio\">\n";
    echo "<option value=\"0\">- Tipo servizio -</option>\n";
    while ($ser = mysql_fetch_array($lista_servizi,MYSQL_ASSOC))
    {
    echo "<option value=\"".$ser["id_serv"]."\"";
    if (isset($_POST["servizio"]) and $_POST["servizio"] ==
    $ser["id_serv"])
    {
    echo " selected";
    }
    echo ">".$ser["descrizione"]."</option>\n";
    }
    echo "</select></td></tr> <tr><td>Tipologia ordine:</td><td></td>";
    if ($_POST["servizio"])
    {
    $cat_servizi = "select * from `categoria_servizi` where `id_rif_servizi` = '".$_POST["servizio"]."'";
    $lista_cat_servizi = mysql_query($cat_servizi) or die ("non eseguo la query account");
    echo "<td><select name=\"cat_servizio\">";
    while ($cat_serv = mysql_fetch_array($lista_cat_servizi,MYSQL_ASSOC))
    {
    echo "<option value=\"".$cat_serv["id_cat_serv"]."\">".$cat_serv["descrizione"]."</option>\n";
    }
    }
    else
    {
    }
    echo "</select></td></tr>";
    ?>

    <tr>
    <td>Modalità pagamento:</td>
    <td></td>
    <td><input name="mod_pag" type="text" id="mod_pag" value="<?php echo isset($_POST["mod_pag"])?$_POST["mod_pag"]:"";?>" size="35" maxlength="50" />*</td>
    </tr>
    <tr>
    <td>Note:</td>
    <td></td>
    <td><textarea name="note" cols="30" rows="8" wrap="virtual" id="note"></textarea></td>
    </tr>
    </table>
    </div>
    <p align="center">
    <input name="salva" type="submit" value="Inserisci" />
    </p>
    </form>
    Qualcuno ha voglia di darmi una mano?

    Grazie in anticipo,
    Fabrizio

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    all'inizio del file dovresti avere l'elenco delle variabili che ricevi dal post del form.
    Facciamo finta che ho una select categoria...

    all'inizio della pagina scrivo

    Codice PHP:
    $p_categoria=$_POST[categoria]; 
    In questo modo ogni volta che viene eseguito il submit del form, so quanto valeva la select.

    A questo punto quando faccio il while, devo andare a dire qual'è il valore selezionato, facendo un confronto dell'esito della query, con il valore del campo selezionato in precedenza...


    Codice PHP:

    //while(...

    if ($classe == $p_classe)
       echo 
    "<option selected value='$classe'>$descrizione_classe</option>";

    else
       echo 
    "<option value='$classe'>$descrizione_classe</option>";

    // }

    Prova ad adattare il concetto al tuo codice... 


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  3. #3
    m'ero pure scordato di questo post
    a dire il vero cmq, con l'aiuto di un amico ho risolto così... posto il codice magari può servire a qualcuno:

    codice:
    <?php
    
    include("conn.php");
    
    $message = "";
    
    if (isset($_POST["salva"]))
    
    {
    
    	if (!$_POST["cliente"])
    
    	{
    
    		$message = "Deve essere inserito il cliente";
    
    	}
    
    	elseif  (!$_POST["filiale"])
    
    	{
    
    		$message = "Deve essere inserita la filiale";
    
    	}
    
    	elseif  (!$_POST["mod_pag"])
    
    	{
    
    		$message = "Deve essere inserita la modalità di pagamento";
    
    	}
    
    	else
    
    	{
    
    		$query = "INSERT INTO `preventivi` (`cliente`, `referente`, `tel_referente`, `mail_referente`, `filiale`, `account`, `tipo_servizi`, `categoria_servizi`, `mod_pag`, `note`) VALUES ('".$_POST["cliente"]."', '".$_POST["referente"]."', '".$_POST["tel_referente"]."','".$_POST["mail_referente"]."', '".$_POST["filiale"]."', '".$_POST["account"]."',  '".$_POST["servizio"]."',  '".$_POST["cat_servizio"]."','".$_POST["mod_pag"]."','".$_POST["note"]."')";
    
    mysql_query($query) or die ($query."
    ".mysql_error());
    
    		$message = "Inserimento effettuato correttamente, attendere la comunicazione di presa in  carico dall'ufficio commerciale";
    
    	}
    
    }
    
    echo "
    
    $message";
    
    ?>
    
        </div>
    
        <form action="ins_prev_new.php" method="post" name="ins_prev" id="ins_prev">
    
          <div align="center">
    
            <table border="0" cellpadding="0" cellspacing="0">
    
              <tr>
    
                <td>Cliente:</td>
    
                <td></td>
    
                <?php
    
    $clienti = "select * from `ana_cli`";
    
    $lista_clienti = mysql_query($clienti) or die ("non eseguo la query clienti");
    
    echo "<td><select name=\"cliente\">\n";
    
    echo "<option value=\"0\">- Selezionare un cliente -</option>\n";
    
    while ($cli = mysql_fetch_array($lista_clienti,MYSQL_ASSOC))
    
    {
    
    echo "<option value=\"".$cli["id_ana_cli"]."\"";
    
     if (isset($_POST["cliente"]) and $_POST["cliente"] == 
    
    $cli["id_ana_cli"])
    
     {
    
            echo " selected";
    
     }
    
     echo ">".$cli["rag_soc"]."</option>\n";
    
    }
    
    echo "</select></td></tr>";
    
    ?>
    
              </tr>
    
              <tr>
    
                <td><span class="Stile1">Se il cliente non è presente, cliccare qui per inserirlo in anagrafica</span></td>
    
              </tr>
    
              <tr>
    
                <td>Referente:</td>
    
                <td></td>
    
                <td><input name="referente" type="text" id="referente" value="<?php echo isset($_POST["referente"])?$_POST["referente"]:"";?>" size="35" maxlength="50" />
    
                  *</td>
    
              </tr>
    
              <tr>
    
                <td>Tel. Referente:</td>
    
                <td></td>
    
                <td><input name="tel_referente" type="text" id="tel_referente" value="<?php echo isset($_POST["tel_referente"])?$_POST["tel_referente"]:"";?>" size="30" maxlength="30" />
    
                  *</td>
    
              </tr>
    
              <tr>
    
                <td>Mail Referente:</td>
    
                <td></td>
    
                <td><input name="mail_referente" type="text" id="mail_referente" value="<?php echo isset($_POST["mail_referente"])?$_POST["mail_referente"]:"";?>" size="35" maxlength="50" />
    
                  *</td>
    
              </tr>
    
              <tr>
    
                <td>Filiale:</td>
    
                <td></td>
    
                <?php
    
    $filiali = "select * from `ana_fil`";
    
    $lista_filiali = mysql_query($filiali) or die ("non eseguo la query filiali");
    
    echo "<td><select name=\"filiale\" OnChange=\"document.forms[0].submit()\">\n";
    
    echo "<option value=\"0\">- Filiale di appartenenza -</option>\n";
    
    while ($fil = mysql_fetch_array($lista_filiali,MYSQL_ASSOC))
    
    {
    
    echo "<option value=\"".$fil["id_fil"]."\"";
    
     if (isset($_POST["filiale"]) and $_POST["filiale"] == 
    
    $fil["id_fil"])
    
     {
    
            echo " selected";
    
     }
    
     echo ">".$fil["filiale"]."</option>\n";
    
    }
    
    echo "</select></td></tr> <tr><td>Account:</td><td></td>";
    
    if (isset ($_POST["filiale"]))
    
    {
    
    $account = "select * from `ana_acc` where `filiale` = '".$_POST["filiale"]."' order by nominativo asc";
    
    $lista_account = mysql_query($account) or die ("non eseguo la query account");
    
    echo "<td><select name=\"nominativo\">";
    
    while ($acc = mysql_fetch_array($lista_account,MYSQL_ASSOC))
    
    {
    
    echo "<option value=\"".$acc["nominativo"]."\"";
    
    if (isset($_POST["nominativo"]) and $_POST["nominativo"] == 
    
    $acc["nominativo"])
    
     {
    
            echo " selected";
    
     }
    
    echo ">".$acc["nominativo"]."</option>\n";
    
    }
    
    }
    
    else
    
    {
    
    }
    
    echo "</select></td></tr>";
    
    ?>
    
              </tr>
    
              <?php
    
    $max = isset($_POST["max"])?$_POST["max"]:1;
    
    echo "<input type=\"hidden\" name=\"max\" value=\"$max\">\n";
    
    for ($i = 1; $i <= $max; $i++)
    
    {
    
    echo "         
    
              <tr>
    
                <td>Categoria Ordine:</td>
    
                <td></td>";
    
    
    
    $servizi = "select * from `servizi`";
    
    $lista_servizi = mysql_query($servizi) or die ("non eseguo la query servizi");
    
    echo "<td><select name=\"servizio[$i]\" OnChange=\"document.forms[0].submit()\">\n";
    
    echo "<option value=\"0\">- Tipo servizio -</option>\n";
    
    while ($ser = mysql_fetch_array($lista_servizi,MYSQL_ASSOC))
    
    {
    
    echo "<option value=\"".$ser["id_serv"]."\"";
    
     if (isset($_POST["servizio"][$i]) and $_POST["servizio"][$i] == 
    
    $ser["id_serv"])
    
     {
    
            echo " selected";
    
     }
    
     echo ">".$ser["descrizione"]."</option>\n";
    
    }
    
    echo "</select></td></tr> <tr><td>Tipologia ordine:</td><td></td>";
    
    if (isset ($_POST["servizio"][$i]))
    
    {
    
    $cat_servizi = "select * from `categoria_servizi` where `id_rif_servizi` = '".$_POST["servizio"][$i]."'";
    
    $lista_cat_servizi = mysql_query($cat_servizi) or die ("non eseguo la query account");
    
    echo "<td><select name=\"cat_servizio\">";
    
    while ($cat_serv = mysql_fetch_array($lista_cat_servizi,MYSQL_ASSOC))
    
    {
    
    echo "<option value=\"".$cat_serv["id_cat_serv"]."\"";
    
    if (isset($_POST["servizio"][$i]) and $_POST["servizio"][$i] == 
    
    $ser["id_serv"])
    
     {
    
            echo " selected";
    
     }
    
     echo">".$cat_serv["descrizione"]."</option>\n";
    
    }
    
    }
    
    else
    
    {
    
    }
    
    echo "</select></td></tr><tr><td>Quantità:</td><td></td><td><input name=\"quantita\" type=\"text\" id=\"quantita\" value=\"".(isset($_POST["quantita"][$i])?$_POST["quantita"][$i]:"")."\" size=\"8\" maxlenght=\"10\"></td></tr>
    
    <tr><td>Descrizione articolo:</td><td></td><td><textarea name=\"descr_articolo\" cols=\"30\" rows=\"8\" wrap=\"virtual\" id=\"descr_articolo\" value=\"".(isset($_POST["descr_articolo"][$i])?$_POST["descr_articolo"][$i]:"")."\"></textarea></td></tr>";
    
    }
    
    ?>
    
    <tr><td>Inserire un articolo</td><td><input type="submit" name="aggiungi" value="Aggiungi articolo" OnClick="max.value++" /></td></tr>
    
    <tr><td>Rimuovere un articolo</td><td><input type="submit" name="rimuovi" value="Rimuovi articolo" OnClick="max.value--" /></td></tr>
    
              <tr>
    
                <td>Modalità pagamento:</td>
    
                <td></td>
    
                <td><input name="mod_pag" type="text" id="mod_pag" value="<?php echo isset($_POST["mod_pag"])?$_POST["mod_pag"]:"";?>" size="35" maxlength="50" />
    
                  *</td>
    
              </tr>
    
              <tr>
    
                <td>Note:</td>
    
                <td></td>
    
                <td><textarea name="note" cols="30" rows="4" wrap="virtual" id="note"></textarea></td>
    
              </tr>
    
            </table>
    
          </div>
    
          <p align="center">
    
            <input name="salva" type="submit" value="Inserisci" />
    
          </p>
    
        </form>
    a dire il vero ha ancora qualche problemino, tipo che non mantiene l'ultima select in array.. ci sto ancora imprecando sopra... se avete qualche suggerimento, è bene accetto


    Fabri

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.