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

    Richiesta preventivo con più input

    Ciao ragazzi, sto realizzando una pagina per la richiesta preventivi online.

    Questo è il codice completo della pagina

    Codice PHP:
    <div class="moduloPreventivo">
    <p style="margin-bottom: 5px; font-weight: bold; text-align:left;">Inserisci i Tuoi Dati</p>
    <form method="post" action="invio-preventivo.php">
    <input type="text" name="cognome" required="required"  value="Cognome">
    <input type="text" name="nome" required="required" value="Nome">
    <input type="text" name="cellulare" required="required"  value="Cellulare">
    <input type="text" name="email" required="required" value="Email">

    <p style="margin-bottom: -5px; font-weight: bold; text-align: left; margin-top: 10px; float: left;">Materiale Richiesto</p>
    <div class="moduloPreventivoQz"><p style="width:50px;">Q.T&agrave;</p> <p style="width:50px">U.m.</p> <p style="width:485px">Descrizione articoli</p> <p style="width:340px">Produttore</p></div>

    <?phpfor ($i=$i <= 10 $i++){?>
    <div class="moduloPreventivoQzBox"><input type="text" name="quantita<?php echo "$i"?>" style="width:30px;"> <input type="text" name="unita<?php echo "$i"?>" style="width:30px;"><input type="text" name="descrizione<?php echo "$i"?>" style="width:470px;">   <select name="produttore<?php echo "$i"?>" style="width:340px;" >   
      <?php$query mysql_query("SELECT * FROM siti_aziende ORDER BY nome ASC");while($riga mysql_fetch_array($query)) {$number mysql_num_rows($query);$nome_azienda=$riga['nome'];$idAzienda $riga['idAzienda'];?>   <option value="<?php echo "$idAzienda"?>"><?php echo "$nome_azienda"?></option><? // ciclo while per costruzione menu produttori ?>     </select>   </div><?        }?>

    <p style=" font-weight: bold; text-align: left; margin-top: 10px; float: left;">Eventuali Note</p><textarea name="noteCliente" style="float: left; width: 920px; height: 180px;" ></textarea>
    <input type="submit" name="procedi"  id="procedi" value="Richiedi Preventivo"></form></div>
    Ho praticamente realizzato un ciclo for per creare 10 moduli per inserire quantità, unità di misura, descrizione e produttore (della merce).

    Ora il mio problema è nella pagina invio-preventivo.php come faccio a recuperare solo gli input che sono stati compilati? E come faccio a spezzettarli per andarli a salvare all'interno del database preventivo_prodotti, in modo che poi vado a fare un'associazione con il db dove salvo i dati del cliente?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    Per vedere se sono stati compilati basta che fai un if($_POST['nome_input']!=""), però non ho capito cosa intendi per "spezzetarli", ogni input ha il suo nome, quindi li troverai già divisi ad esempio $_POST['quantita1'], $_POST['quantita2'] ecc..

  3. #3
    Quote Originariamente inviata da Disema Visualizza il messaggio
    Per vedere se sono stati compilati basta che fai un if($_POST['nome_input']!=""), però non ho capito cosa intendi per "spezzetarli", ogni input ha il suo nome, quindi li troverai già divisi ad esempio $_POST['quantita1'], $_POST['quantita2'] ecc..
    Ok, praticamente devo creare $_POST['quantita1'], per ogni singolo valore?
    Non esiste una maniera per fare tipo un ciclo o qualcosa del genere e richiamare tutto?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Nel form
    name="produttore
    []"

    Poi nel POST troverai un array da ciclare

  5. #5
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Nel form
    name="produttore
    []"

    Poi nel POST troverai un array da ciclare
    Ok, io nella pagina successiva faccio

    $quantita1 = $_POST['quantita1'];

    non è possibile avere tutte le quantità in un unico array e poi dividerlo in modo da caricare all'interno del mio db una cosa del genere

    id (autoincrementante) | id_preventivo | quantita | unita | descrizione | sessione_utente | produttore

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Se usi la notazione che ti ho scritto per tutti i name, dovresti ottenere un array multidimensionale ordinato
    Fai una prova, un var_dump di $_POST e controlla cosa ti mostra a schermo

  7. #7
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    in teoria dovrebbe funzionare anche con la $i del for, in questo modo:
    $_POST["quantita$i"] dovrebbe funzionare perchè quello tra parentesi è una stringa e quindi dovrebbe leggere il valore della variabile.

  8. #8
    Io ho fatto così

    Codice PHP:

    $quantita
    $_POST['quantita'];$unita $_POST['unita'];$conta count($quantita$unita);for($i=0;$i<$conta;$i++){echo $quantita[$i];echo $unita[$i];} 
    Se tolgo sul count la variabile $unita mi funziona correttamente e mi stampa l'array con i numeri che imposto nel form.

    Invece se faccio come ho fatto adesso mi da questo errore

    ! ) Warning: count() expects parameter 2 to be long, array given in C:\..\richiesta-preventivi\invio-preventivo.php on line 50

    è la riga 50 è proprio il count()

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    count accetta solo un parametro obbligatorio (l'oggetto su cui contare) e opzionalmente la modalità di conteggio
    quindi non puoi passare count($quantita, $unita) come fai tu

    giusto per curiosità, hai provato la notazione che ti ho scritto prima e il suo var_dump()?

  10. #10
    Clasku, con la soluzione che mi da tu echo var_dump($_POST);

    Mi restituisce questo


    array (size=30)
    'cognome' => string 'Alessandro' (length=10)
    'nome' => string 'asd' (length=6)
    'cellulare' => string '4587965574' (length=10)
    'email' => string 'email@gmail.com' (length=27)
    'quantita' =>
    array (size=11)
    0 => string '1' (length=1)
    1 => string '4' (length=1)
    2 => string '1' (length=1)
    3 => string '1' (length=1)
    4 => string '4' (length=1)
    5 => string '' (length=0)
    6 => string '' (length=0)
    7 => string '' (length=0)
    8 => string '' (length=0)
    9 => string '' (length=0)
    10 => string '' (length=0)
    'unita' =>
    array (size=11)
    0 => string 'pz' (length=2)
    1 => string '' (length=0)
    2 => string '' (length=0)
    3 => string '' (length=0)
    4 => string '' (length=0)
    5 => string '' (length=0)
    6 => string '' (length=0)
    7 => string '' (length=0)
    8 => string '' (length=0)
    9 => string '' (length=0)
    10 => string '' (length=0)
    'descrizione0' => string 'dsadsa' (length=6)
    'produttore0' => string '1' (length=1)
    'descrizione1' => string '' (length=0)
    'produttore1' => string '' (length=0)
    'descrizione2' => string '' (length=0)
    'produttore2' => string '' (length=0)
    'descrizione3' => string '' (length=0)
    'produttore3' => string '' (length=0)
    'descrizione4' => string '' (length=0)
    'produttore4' => string '' (length=0)
    'descrizione5' => string '' (length=0)
    'produttore5' => string '' (length=0)
    'descrizione6' => string '' (length=0)
    'produttore6' => string '' (length=0)
    'descrizione7' => string '' (length=0)
    'produttore7' => string '' (length=0)
    'descrizione8' => string '' (length=0)
    'produttore8' => string '' (length=0)
    'descrizione9' => string '' (length=0)
    'produttore9' => string '' (length=0)
    'descrizione10' => string '' (length=0)
    'produttore10' => string '' (length=0)
    'noteCliente' => string 'dsadsa' (length=6)
    'procedi' => string 'Richiedi Preventivo' (length=19)

    Ora dovrei inserire questi dati all'interno del mio db nella tabella
    preventivi_prodotti, che è composta da questi campi.

    id
    id_prodotto
    qnt
    ses
    um
    descrizione_prodotto
    produttore

    Come faccio a creare un funzione che mi separi i vari dati correttamente?

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.