problema con checkbox e input text

donato.chpp

Utente Attivo
26 Ott 2008
36
0
0
ciao, ho un piccolo problema con cui non riesco proprio ad andare avanti.
sto creando una specie di listino dove si sceglie una citta con la relativa zona tramite checkbox e si immette il prezzo tramite input

questo e il codice

<table>
<form action = "function_php/insert_preventivo.php" method = "post">
<?php
$xxx = mysql_connect("localhost","root","password");
mysql_select_db("prova",$xxx);
$citta = mysql_db_query("prova","select distinct nome from luogo",$xxx);
/* visualizzazione citta disponibili */
while ( $mostra = mysql_fetch_array($citta) ) {
($counter % 2 == 0) ? $class = "uno" : $class = "due";
echo "<tr class=\"$class\">";
$city = $mostra['nome'];
echo "<td>".$city."</td>";
/* visualizzazione zone disponibili */
$luogo = mysql_db_query("prova","select zona from luogo WHERE nome = '$city'",$xxx);
echo "<td><table>";
while ( $m = mysql_fetch_array($luogo) ) {
echo "<tr>";
$zone = $m['zona'];
echo "<td>".$zone."</td>";
/* visualizzazione quantita disponibili */
$quantita = mysql_db_query("prova","select * from quantita",$xxx);
echo "<td><table>";
while( $q = mysql_fetch_array($quantita) ) {
echo "<tr>";
$quant = $q['quan'];
echo "<td>".$quant."<input type='checkbox' name='prova[]' value = '$city.$zone.$quant'>"."<input class='prezzi' type='text'>"."</td>";
echo "</tr>";
}
echo "</table></td>";
echo "</tr>";
}
echo "</table></td>";
echo "</tr>";
$counter++;
}
echo "<td><input class=\"addbotton\" type = \"submit\" name = \"submit\" value = \"aggiungi\"></td>";
?>
</form>
</table>

praticamente ho delle citta con le relative zone inserite nel database e tramite check do la possibilita di sceglierle e di inserire il prezzo. fin qui tutto ok, il problema e che non riesco a catturare il prezzo, cioe le check le prendo cosi:

$nome = $_POST['prova'];
$mio = implode(".", $nome);
$ex = explode(".", $mio);
$lungh_array = count($ex);
for ($contatore=0; $contatore < $lungh_array; $contatore++) {
echo "$ex[$contatore]<BR>";
}

ed è ok solo che riesco a prendere la scelta fatta, quindi con citta zona e quantita, ma il prezzo non e una checkbox e non so come prelevarlo.
quando effettuo una scelta mi dara citta->zona->quantita che e ok, pero io voglio citta->zona->quantita->prezzo.
spero di essermi spiegato bene. qualcuno potrebbe aiutarmi???? grazie milleeee!!!
 
ciao
devi mettere il nome all'input esempio:

<input name="prezzo" type="text" value="valore_iniziale" class="prezzi">

e poi lo prelevi col

$prezzo=$:POSTpreszzo'];

p.s.
value="valore_iniziale"
se ti serve altrimenti lo togli
 
grazie per la risposta. capito. il problema però è che le check spuntate non so quante siano perche dinamiche. anche se do il nome al prezzo non lo collego comunque alla scelta fatta, spero di spiegarmi bene. se io da una parte ho citta->zona->quantita dall'altra ho solo prezzo. poi citta->zona->quantita li vado a leggere con ciclo for dopo aver fatto l'explode quindi non so li in quel momento come inserire il prezzo.

in pratica quello che vorrei è che quando vado a fare il ciclo for mi deve dare citta->zona->quantita->prezzo per tutte le scelte fatte ed i prezzi inseriti
 
Ultima modifica:
ciao
prova a fare come hai fatto per le check

echo "<td>".$quant."<input type='checkbox' name='prova[]' value = '$city.$zone.$quant'>"."<input class='prezzi' type='text'>"."</td>";

e cioè

echo "<td>".$quant."<input type='checkbox' name='prova[]' value = '$city.$zone.$quant'>"."<input name='prezzi[]' class='prezzi' type='text'>"."</td>";
 
Ultima modifica:
cosi ho provato a fare però il problema resta quello. quando vado a fare explode mi da
citta
zona
quantita
citta
zona
quantita

cioe per tutte le scelte fatte, ora io in citta->zona->quantita vorrei anche il prezzo per quella scelta e quindi citta->zona->quantita->prezzo

invece cosi riesco ad avere citta->zona->quantita e un array di prezzi che non so come associare

grazie per la disponibilità e l'aiuto :)
 
ciao,
ho una mezz'idea. se hai pazienza la provo e domani te la posto (sempre che tu o qualcun altro non ti abbiano dato una dritta prima)
 
ciao
questa è l'idea che mi è venuta, considerala solo un esempio
perche è comunque da sviluppare e/o semplificare
se provi lo script così come è
selezionando uno o più check e scrivendo il prezzo avrai un out del tipo
citta una.zona uno1.quant uno1 con prezzo= 987

PHP:
<?php
//ho fatto degli array per non fare il database
$city=array("citta una","citta dua","citta trea");
$zone=array("zona uno1","zona due2","zona tre3");
$quant=array("quant uno1","quant due2","quant tre3");
if(isset($_POST['submit'])){
	unset($_POST['submit']);//elimino nella globale il submit
	$leggi=$_POST;
	//var_dump($leggi);
	//ciclo i valori dal post e li metto in un'altro array
	foreach($leggi as $valore){
		if($valore !=""){
			$scrivi[]= $valore;
		}//fine if valore non vuoto
	}//fine forech
	$sono=count($scrivi);//sono sempre in numero pari
	for($j=0;$j<$sono;$j=$j+2){//step di due in due
		//qui posso espoldere la prima parte cioe $scrivi[$j]
		//al posto dell'echo quello che devi fare
		echo $scrivi[$j]." con prezzo= ".$scrivi[$j+1]."<br>";
	}
}//fine if submit
?>

<form action="" method="post">
<?php
//ho messo 3 perchè i valori degli array sono 3
//puoi mettere dentro il ciclo while un contatore
//prima del while $j=0;
//dentro il while dopo l'input $j++
//e al posto degli array city ecc. i valori che vengono dalla query
for($j=0;$j<3;$j++){
echo "<input type='checkbox' name='c".$j."' value = '".$city[$j].".".$zone[$j].".".$quant[$j]."'>"."<input name='p".$j."' class='prezzi' type='text'><br>"; 
}
?>
<input type="submit" name="submit" value="invia">
</form>
p.s.
forse ci sono metodi migliori
 

Discussioni simili