Campi aggiuntivi da form ma nascosti.

salql

Nuovo Utente
28 Apr 2012
8
0
0
Ciao a tutti, lurkando sovente questo forum, mi sono iscritto per fare una domanda, visto che sto iniziando ad applicare concretamente il php nei miei lavori, vi pongo un quesito sperando che qualcuno possa rispondermi.

Ho un campo select, nella quale vorrei aggiungere al valore che indico nelle opzioni, un campo nascosto da visualizzare in seguito in un file che mi fa vedere cio' che viene inserito, vi posto l'esempio di cio' che intendo:


inserisci.php


PHP:
<label>Colore:
<select name="colore">
<option value="0">:: seleziona ::</option>
<option value="1">rosso</option>
<option value="2">blu</option>
<option value="3">giallo</option>	  
</select>
</label>

questo form passa ovviamente tramite una query INSERT nel db come questa:

$query = "INSERT INTO test (rosso)
VALUES ($colore)";

io vorrei in soldoni, che se uno mi seleziona "rosso" oltre a inserire "rosso" nel db, mi inserisca anche il prezzo, che è un valore non selezionabile dall'utente, andandolo poi a stampare in un'altra pagina che si chiama visualizza.php una cella con scritto "rosso" e nella cella affianco "15€"

vi posto anche il visualizza, visto che comunque credo che vada applicata qua la modifica della visualizzazzione:



PHP:
$query = "SELECT colore FROM test";

$result = mysql_query($query);

if (!$result) {
	die("Errore nella query $query: " . mysql_error());
}

$colore_arr = array('&nbsp;','rosso','blu','giallo');

while ($row = mysql_fetch_assoc($result)) {

$colore = $colore_arr[$row['colore']];
echo "<tr>
	<td>$colore  |  $prezzocolore</td>
      </tr>";
}


questo dovrebbe essere cio' che mi esce fuori... qualcuno puo' aiutarmi? :)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Potresti fare semplicemente cosi:
PHP:
$query = "SELECT colore FROM test"; 

$result = mysql_query($query); 

if (!$result) { 
    die("Errore nella query $query: " . mysql_error()); 
} 

$colore_prezzi = array("10€","20€", "30€");
$colori = array("rosso","giallo","verde");

while ($row = mysql_fetch_assoc($result)) { 
 
echo "<tr> 
    <td>".$colori[$row['colore']]." | ".$colore_prezzi[$row['colore']]."</td> 
      </tr>"; 
}
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
Potresti fare semplicemente cosi:
PHP:
$query = "SELECT colore FROM test"; 

$result = mysql_query($query); 

if (!$result) { 
    die("Errore nella query $query: " . mysql_error()); 
} 

$colore_prezzi = array("10€","20€", "30€");
$colori = array("rosso","giallo","verde");

while ($row = mysql_fetch_assoc($result)) { 
 
echo "<tr> 
    <td>".$colori[$row['colore']]." | ".$colore_prezzi[$row['colore']]."</td> 
      </tr>"; 
}

ah ti ringrazio, ma quindi giusto per vedere se imparo.. aggiungendo "_campo" a un array, questo mi diventa assegnabile? ottimo ;) però una domanda.. se i prezzi che assegniamo in questo array, io alla fine della lista li dovessi sommare, sarebbe fattibile anche senza inserirli nel db?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Se ho capito bene (forse) tu intendi assegnare il nome di un campo di un array? beh ecco un esempio
PHP:
$colori = array("rosso" => "10€","giallo" => "20€","verde" => "30€");

Seconda cosa, se intendi sommare tutti i prezzi dei colori scelti fai cosi:

PHP:
$query = "SELECT colore FROM test";  

$result = mysql_query($query);  

if (!$result) {  
    die("Errore nella query $query: " . mysql_error());  
}  

$colore_prezzi = array(10,20,30); 
$colori = array("rosso","giallo","verde"); 

while ($row = mysql_fetch_assoc($result)) {  
  
echo "<tr>  
    <td>".$colori[$row['colore']]." | ".$colore_prezzi[$row['colore']]."€</td>  
      </tr>"; 
$totale = $totale + $colore_prezzi[$row['colore']];
}  
echo "Prezzo totale: $totale";
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
Se ho capito bene (forse) tu intendi assegnare il nome di un campo di un array? beh ecco un esempio
PHP:
$colori = array("rosso" => "10€","giallo" => "20€","verde" => "30€");

Seconda cosa, se intendi sommare tutti i prezzi dei colori scelti fai cosi:

PHP:
$query = "SELECT colore FROM test";  

$result = mysql_query($query);  

if (!$result) {  
    die("Errore nella query $query: " . mysql_error());  
}  

$colore_prezzi = array(10,20,30); 
$colori = array("rosso","giallo","verde"); 

while ($row = mysql_fetch_assoc($result)) {  
  
echo "<tr>  
    <td>".$colori[$row['colore']]." | ".$colore_prezzi[$row['colore']]."€</td>  
      </tr>"; 
$totale = $totale + $colore_prezzi[$row['colore']];
}  
echo "Prezzo totale: $totale";

esattamente quello che intendevo, terro' tesoro di questo, ti ringrazio molto.
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
Ti chiedo scusa ancora, provando anche l'ultimo codice, non riesco comunque ad ottenere il risultato totale, perchè se vado a intuito e cerco di capire qualcosa nello script, noi andiamo a sommare la riga, essendo pero' in un ciclo while, dovrei sommare proprio l'intera colonna coi costi, una cosa del genere intendo:

COLORE COSTO
rosso 10
blu 20
verde 20




totale: 50.

io interpretando comunque ho capito grazie alle tue semplici e chiare righe, che posso anche sommare piu' cose nella stessa riga, e mi è comunque tornato comodo, ma non riesco proprio a interpolare il totale :(
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Prova cosi
PHP:
$query = "SELECT colore FROM test";   

$result = mysql_query($query);   

if (!$result) {   
    die("Errore nella query $query: " . mysql_error());   
}   

$colore_prezzi = array(10,20,30);  
$colori = array("rosso","giallo","verde");  

while ($row = mysql_fetch_assoc($result)) {   
   
echo "<tr>   
    <td>".$colori[$row['colore']]." | ".$colore_prezzi[$row['colore']]."€</td>   
      </tr>";  
$totale += $colore_prezzi[$row['colore']]; 
}   
echo "Prezzo totale: $totale";
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
Perfetto, ora lo script funziona alla grand e riesco anche a sommarmi qualunque campo voglia tramite array, solo una cosa, sai dirmi perchè in testa alla pagina, esce questo errore?

PHP:
Notice: Undefined variable: totale3 in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\test\vedi.php on line 60

è ovvio che riguarda l'ultima variabile applicata, e l'ho messa esattamente come l'hai incollata te, eppure nonostante tutto funziona, scusa se approfitto del tuo tempo :hammer:


ho editato, perchè avevo un'altra cosa nel copia, l'errore si è generato quando ho applicato un'altra modifica:

$totale = $opzione_prezzi[$row['opzione']] + $opzione1_prezzi[$row['opzione1']];
$totale3 += $totale;

eppure funziona benissimo :D
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
devi valorizzare la variabile $totale3 prima di incrementarla
prova cosi:

PHP:
$totale3 = 0;
$totale = $opzione_prezzi[$row['opzione']] + $opzione1_prezzi[$row['opzione1']];
$totale3 += $totale;

se sei in un cilco la valorizzi al di fuori
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
allora ecco il codice:

PHP:
while ($row = mysql_fetch_assoc($result)) {
	$id      = htmlentities($row['id']);
	$data      = htmlentities($row['data']);
	$nome      = htmlentities($row['nome']);
	$numero     = htmlentities($row['numero']);
	$note = htmlentities($row['note']);
	$note = nl2br($note);

	if(!$numero)     $numero = '&nbsp;';
	if(!$note) $note = 'Tutto OK';

	$nazione = $row['nazione'] ? 'Straniero' : 'Italiano';
	$categoria = $row['categoria'] ? 'Aziendale' : 'Privato';
	$tipo = $row['tipo'] ? 'Test' : 'test2';
	
    $totale = $opzione_prezzi[$row['opzione']] + $opzione1_prezzi[$row['opzione1']] + $classe_prezzi[$row['classe']];
	$totale3 += $totale;

	echo "<tr>
			<td><center>$id</center></td>	
			<td>$data</td>			
			<td>$nome</td>
			<td>$numero</td>
			<td>".$opzione_arr[$row['opzione']]."</td>
			<td>".$opzione_prezzi[$row['opzione']]."</td>
			<td>".$opzione1_arr[$row['opzione1']]."</td>
			<td>".$opzione1_prezzi[$row['opzione1']]."</td>
			<td>$nazione</td>
			<td>$tipo</td>
			<td>$categoria</td>
			<td>".$classe_arr[$row['classe']]."</td>
			<td>".$classe_prezzi[$row['classe']]."</td>
			<td>".$ricarica_arr[$row['ricarica']]."</td>
			<td>$note</td>
			<td>$totale</td>			
		</tr>";
	
}

echo "</table><p>
totale  $totale3";

se aggiungo

PHP:
$totale3 = 0;

mi somma solo la riga, e non piu' il totale di tutto come ero riuscito ad ottenere, mi scuso ancora per l'ignoranza ma sto imparando mille cose ogni volta che postate :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ma l'hai messo fuori dal ciclo prima di while?

PHP:
$totale3 = 0;
while ($row = mysql_fetch_assoc($result)) {
 

salql

Nuovo Utente
28 Apr 2012
8
0
0
Ma l'hai messo fuori dal ciclo prima di while?

PHP:
$totale3 = 0;
while ($row = mysql_fetch_assoc($result)) {

ah ecco, va messo prima di while, ora tutto funziona benone, in sostanza sbagliavo perchè ogni volta che ciclava mi resettava il totale se non ho capito male?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Edit: hai risolto

ah ecco, va messo prima di while, ora tutto funziona benone, in sostanza sbagliavo perchè ogni volta che ciclava mi resettava il totale se non ho capito male?
Si nel ciclo ogni volta tornava 0 e dava solo il valore finale
 
Discussioni simili
Autore Titolo Forum Risposte Data
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
T [VBulletin] Campi aggiuntivi prima di aprire nuova discussione CMS (Content Management System) 0
G Disposizione campi HTML e CSS 6
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
G Campi multivalore Database 0
M Memorizzare i dati nei campi prima dell'invio al db PHP 4
D Stampa a video solo campi compilati MySQL 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
M Array associativi php su 2 campi mysql PHP 10
D popolare campi tra th alla select PHP 36
G VBA OpenForm con WhereCondition + LIKE su campi differenti MS Access 5
B Stringa sql per ricerca su più campi Database 1
F Leggere e aggiornare dati di campi <input text> su file di test PHP 0
M Compilazione automatica campi in input stessa pagina PHP 0
MarcoGrazia Gestire lista campi vuoti in fase di autenticazione jQuery 1
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
L aggiornare 2 campi di una tabella insieme PHP 6
L Estrazione valori max su più campi MySQL 4
L Campi obbligatori form php PHP 0
T Campi static del Controller generico si azzerano ad ogni richiesta PHP 3
elpirata Popolare campi tabella con totali estratti da database PHP 24
A [Javascript] Scrittura su più campi contemporaneamente Javascript 18
D Salvare in diversi campi mysql con diversi ID PHP 0
Domenico_Falco1 [Javascript] [HTML] Campi form con sfondo imposto dal browser Javascript 5
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
L [Javascript] Select option in campi input Javascript 4
D [ASP] Autocomplete cerca su 2 campi del db Classic ASP 1
elpirata [Javascript] Controllo campi required non effettuato Javascript 2
L [PHP] Form da select compilare campi automaticamente PHP 1
E Validazione campi form passati da link Programmazione 0
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
M [PHP] Compilare campi in automatico con dati presi dal DB PHP 25
C [MySQL] Copiare campi di un record in un nuovo record MySQL 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
M [PHP] Sommare due campi calcolati PHP 3
R [Javascript] Togliere Campi obbligatori Javascript 7
P [PHP] Intercettare ed aggiornare campi di un database PHP 5
V [Javascript] [HTML] Attivazione nuovi campi di input Javascript 2
L [MS Access] come popolare automaticamente i campi di una sottomaschera MS Access 8
M [PHP] Escludere campi non valorizzati PHP 22
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
S [PHP] form campi a completamento automatico dal DB PHP 5
F Controllo dati sui campi di input tramite php PHP 1
paloppa [PHP] Campi che appaiono dopo aver compilato un determinato campo PHP 7

Discussioni simili