- Home
- Categorie
- Coding e Sistemistica
- Coding
- Form con combo e textarea
-
Form con combo e textarea
Ciao a tutti,
sto creando una form di insert dati composta da 4 text area e 2 combobox, e ovviamente un pulsante di action.
Bene, dopo aver creato le 2 combo che leggono dati da una tabella (grazie a un post precedente), vado a programmare le 4 textarea (cosa che ho fatto in prima istanza in maniera semplice e immediata) ma a mio stupore il sistema mi restituisce errori proprio sulla dichiarazione delle varaibili.<html> <body> <form method="post"> Data: <input type="text" name="data" value=""><br> <?php $dbhost = "localhost"; $dbuser = "root"; $dbpwd = ""; $dbname = "portale"; $connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error()); $dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error()); // COMBO RAGIONE SOCIALE echo "Ragione sociale"; echo "<select name='ragionesociale'>"; $result = mysql_query("SELECT DISTINCT ragionesociale FROM clienti ORDER BY ragionesociale ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['ragionesociale']."'>".$row['ragionesociale']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; // COMBO TIPOLOGIA LAVORO echo "Tipologia Lavoro"; echo "<select name='tipologia_lavoro'>"; $result = mysql_query("SELECT DISTINCT tipologia FROM tipologia_lavoro ORDER BY tipologia ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['tipologia']."'>".$row['tipologia']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; ?> Note: <input type="text" name="note" value=""><br> Prezzo Preventivato: <input type="text" name="prezzo" value=""><br> Scadenza: <input type="text" name="scadenza" value=""><br> <input type="submit" value="Aggiungi"> </form> <?php $dbhost = "localhost"; $dbuser = "root"; $dbpwd = ""; $dbname = "portale"; $connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error()); $dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error()); // RECUPERA DATI DAL FORM $data = $_POST['data']; $ragionesociale = $_POST['ragionesociale']; $tipologia_lavoro = $_POST['tipologia_lavoro']; $note = $_POST['note']; $prezzo = $_POST['prezzo']; $scadenza = $_POST['scadenza']; //insert $toinsert = "INSERT INTO lavori_chiusi (data, ragionesociale, tipologia_lavoro, note, prezzo, scadenza,) VALUES ('".$data."','".$ragionesociale."','".$tipologia_lavoro."','".$note."','".$prezzo."','".$scadenza."')"; $result = mysql_query($toinsert); if($result){ echo("<br>Inserimento avvenuto correttamente"); } else{ echo("<br>Inserimento non eseguito"); } ?> </body> </html>Gli errori riscontrati son i seguenti:
**Notice: Undefined index: data in **C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line **63
**Notice: Undefined index: ragionesociale in **C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line **64
**Notice: Undefined index: tipologia_lavoro in **C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line **65
**Notice: Undefined index: note in **C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line **66
**Notice: Undefined index: prezzo in **C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line **67
Notice: Undefined index: scadenza in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\combo_insert_nuovo_lavoro.php on line 68******************************
Ovvero proprio nelle variabili
[PHP] $data = $_POST['data']; $ragionesociale = $_POST['ragionesociale']; $tipologia_lavoro = $_POST['tipologia_lavoro']; $note = $_POST['note']; $prezzo = $_POST['prezzo']; $scadenza = $_POST['scadenza'];[/PHP]Forse sto confondendo la "Francia con la Spagna"?
Grazie a tutti coloro che mi aiuteranno a crescere e che avranno pazienza nel illustrarmi i miei errori

-
Ciao mimmo, cambia il <form> in <form action='<?php echo $PHP_SELF; ?>' method='POST'>
Dovrebbe andare, if form non viene inviato se non gli dici dove andare!
-
Allora, 2 cose...
- Cosa significa ciò che mi hai suggerito?
- sostituendo, mi riscontra gli stessi errori...
Grazie
-
Ok, credo di avere capito l'errore. Il fatto è che quando carichi la pagina per la prima volta, prima di inviare il formulario, lui comunque esegue anche i "calcoli" che gli hai messo sotto, tra cui il $data = $_POST['data'];
Ma non esiste nessun $_POST['data'], quindi dà errore. Puoi risolvere questo mettendo tutta la parte "post-formulario" in un if(isset($_POST['data']))Quello che ti avevo detto prima è che il tag form necessita di due attributi. Il method, che hai messo anche tu, e l'action, ossia la pagina da richiamare quando il form viene inviato. La costante $PHP_SELF fa richiamare la stessa pagina.
-
Allora, ho modificato cosi:
<html>
<body>
<form action='<?php echo $PHP_SELF;?>' method='POST'>Data: <input type="text" name="data" value=""><br> <?php $dbhost = "localhost"; $dbuser = "root"; $dbpwd = ""; $dbname = "portale"; $connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error()); $dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error()); // COMBO RAGIONE SOCIALE echo "Ragione sociale"; echo "<select name='ragionesociale'>"; $result = mysql_query("SELECT DISTINCT ragionesociale FROM clienti ORDER BY ragionesociale ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['ragionesociale']."'>".$row['ragionesociale']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; // COMBO TIPOLOGIA LAVORO echo "Tipologia Lavoro"; echo "<select name='tipologia_lavoro'>"; $result = mysql_query("SELECT DISTINCT tipologia FROM tipologia_lavoro ORDER BY tipologia ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['tipologia']."'>".$row['tipologia']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; ?> Note: <input type="text" name="note" value=""><br> Prezzo Preventivato: <input type="text" name="prezzo" value=""><br> Scadenza: <input type="text" name="scadenza" value=""><br> <input type="submit" value="Aggiungi"> </form> <?php $dbhost = "localhost"; $dbuser = "root"; $dbpwd = ""; $dbname = "portale"; $connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error()); $dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error()); // RECUPERA DATI DAL FORM $data = $_POST['data']; $ragionesociale = $_POST['ragionesociale']; $tipologia_lavoro = $_POST['tipologia_lavoro']; $note = $_POST['note']; $prezzo = $_POST['prezzo']; $scadenza = $_POST['scadenza']; //INSERT $toinsert = "INSERT INTO lavori_chiusi (data, ragionesociale, tipologia_lavoro, note, prezzo, scadenza,) VALUES ('".$data."','".$ragionesociale."','".$tipologia_lavoro."','".$note."','".$prezzo."','".$scadenza."')"; $result = mysql_query($toinsert); if($result){ echo("<br>Inserimento avvenuto correttamente"); } else{ echo("<br>Inserimento non eseguito"); } if (isset($data)) { echo ("Campo data obblicatorio"); } else { echo ("OK"); } ?></body>
</html>ma mi restituisce sempre gli errori sulle variabili...

grazie ancora
-
Ehm... intendevo dire che dalla fine del form il tuo codice andrebbe modificato così:
[PHP]<?php
if(isset($_POST['data']))
{
$dbhost = "localhost";
$dbuser = "root";
$dbpwd = "";
$dbname = "portale";
$connessione=mysql_connect($dbhost,$dbuser,$dbpwd) or die (mysql_error());
$dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error());// RECUPERA DATI DAL FORM
$data = $_POST['data'];
$ragionesociale = $_POST['ragionesociale'];
$tipologia_lavoro = $_POST['tipologia_lavoro'];
$note = $_POST['note'];
$prezzo = $_POST['prezzo'];
$scadenza = $_POST['scadenza'];//INSERT
$toinsert = "INSERT INTO lavori_chiusi (data, ragionesociale, tipologia_lavoro, note, prezzo, scadenza,)
VALUES
('".$data."','".$ragionesociale."','".$tipologia_l avoro."','".$note."','".$prezzo."','".$scadenza."' )";$result = mysql_query($toinsert);
if($result){
echo("<br>Inserimento avvenuto correttamente");
} else{
echo("<br>Inserimento non eseguito");
}if (isset($data)) {
echo ("Campo data obblicatorio");
}
else {
echo ("OK");
}}
?>[/PHP]
-
Bingo!!! Grazieeee
-
Una cosa non sto capendo, come mai non mi fa la insert ma mi restituisce la pagine (al click del pulsante)
Accesso negato!
Non disponi dei permessi necessari per accedere all'oggetto richiesto, oppure l'oggetto non può essere letto dal server.
Se pensi che questo sia un errore del server, per fa...Eppure la "insert" è presente nella tabella...bah
-
[h=2]Error 403
127.0.0.1
04/30/14 10:05:16
Apache/2.2.19 (Win32) PHP/5.3.8
-
Non so perchè ti dia error 403, ma ho visto che nella query c'è una variabile, $tipologia_l avoro, alla quale andrebbe tolta la spaziatura.
-
si si ...tolta gia prima, ma il risultato è lo stesso

e' stranissimo...
-
di solito il 403 quando lo restituisce?
-
Dovrebbe essere un problema del server, che si rifiuta di accettare la tua richiesta (di vedere la pagina). Ma non mi è mai successo
-
cosa posso provare???
-
non è che ho infilato nel mezzo anche del html?
-
questo è il code
<html><body>
<form action='<?php echo $PHP_SELF;?>' method='POST'>Data: <input type="text" name="data" value=""><br> <?php $dbhost = "localhost"; $dbuser = "root"; $dbpwd = ""; $dbname = "portale"; $connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error()); $dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error()); // COMBO RAGIONE SOCIALE echo "Ragione sociale"; echo "<select name='ragionesociale'>"; $result = mysql_query("SELECT DISTINCT ragionesociale FROM clienti ORDER BY ragionesociale ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['ragionesociale']."'>".$row['ragionesociale']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; // COMBO TIPOLOGIA LAVORO echo "Tipologia Lavoro"; echo "<select name='tipologia_lavoro'>"; $result = mysql_query("SELECT DISTINCT tipologia FROM tipologia_lavoro ORDER BY tipologia ASC"); while($row = mysql_fetch_array($result)) { echo "<option value='".$row['tipologia']."'>".$row['tipologia']."</option>"; } echo "</select>"; echo $row[1] . "<br/>"; ?> Note: <input type="text" name="note" value=""><br> Prezzo Preventivato: <input type="text" name="prezzo" value=""><br> Scadenza: <input type="text" name="scadenza" value=""><br> <input type="submit" value="Aggiungi"> </form> <?phpif(isset($_POST['data']))
{
$dbhost = "localhost";
$dbuser = "root";
$dbpwd = "";
$dbname = "portale";
$connessione=mysql_connect($dbhost,$dbuser,$dbpwd) or die (mysql_error());
$dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error());// RECUPERA DATI DAL FORM
$data = $_POST['data'];
$ragionesociale = $_POST['ragionesociale'];
$tipologia_lavoro = $_POST['tipologia_lavoro'];
$note = $_POST['note'];
$prezzo = $_POST['prezzo'];
$scadenza = $_POST['scadenza'];//INSERT
$toinsert = "INSERT INTO lavori_chiusi (data, ragionesociale, tipologia_lavoro, note, prezzo, scadenza,)
VALUES
('".$data."','".$ragionesociale."','".$tipologia_lavoro."','".$note."','".$prezzo."','".$scadenza."' )";$result = mysql_query($toinsert);
if($result){
echo("<br>Inserimento avvenuto correttamente");
} else{
echo("<br>Inserimento non eseguito");
}if (isset($data)) {
echo ("Campo data obblicatorio");
}
else {
echo ("OK");
}}
?><a href="home.html"><img src="../img/home.jpg" /></a>
</body>
</html>
-
. . .