form dinamico

  • Creatore Discussione Creatore Discussione idkfa46
  • Data di inizio Data di inizio

idkfa46

Utente Attivo
17 Ott 2010
40
0
0
Buonasera a tutti...
Ho creato un piccolo form in php che potete vedere al seguente link
http://www.matteomosconi.com/timber/

Il form è impostato su 2 colonne... la colonna sinistra contiene il form e la colonna destra contiene il riepilogo dei dati con un piccolo calcolo della variabile totale da passare a paypal.

Ora però vorrei apportare qualche modifica, in particolare vorrei eliminare il tasto "conferma" e far si che il riepilogo si compili dinamicamente mentre l'utente compila il form!!!

Come posso procedere? Dalla documentazione che ho trovato in rete credo che la soluzione sia in jquery e ajax...

Grazie,
M
 
Ciao guarda un po se ti può servire questo

ggggg.jpg


http://max400.netne.net/ggggg.html

avevo fatto qualkosa di simile in passato ma era col tasto conferma
http://forum.mrwebmaster.it/javascript/27813-script-javascript-calcolo-prezzo-totale.html

adesso l'ho modificato in base alla tua esigenza
 
Cavolo sembra perfetto! Posso vedere il codice che lo genera cosi provo ad implementarlo nel mio form?
 
Ecco il codice!

Nella fretta me l'ero scordato
Codice:
<script>
a=10;
b=20;
c=30;
d=40;
totale=0;
function aa(){
totale=totale+a;
bbb=document.getElementById('casella');
bbb.value=totale;
}
function bb(){
totale=totale+b;
bbb=document.getElementById('casella');
bbb.value=totale;
}
function cc(){
totale=totale+c;
bbb=document.getElementById('casella');
bbb.value=totale;
}
function dd(){
totale=totale+d;
bbb=document.getElementById('casella');
bbb.value=totale;
}
function cancella(){
window.location.href='ggggg.html';
}
</script>


totale: <input type="text" id="casella"><br> 
<form>
<input type="checkbox" name="scelta1" onClick="aa()">a=10;<br />
 <input type="checkbox" name="scelta2" onClick=bb()>b=20;<br />
 <input type="checkbox" name="scelta3" onClick=cc()>c=30;<br />
 <input type="checkbox" name="scelta4" onClick=dd()>d=40;<br />
 <input type="submit" value="reset" onClick="cancella">
</form>

Si potrebbe sistemare meglio...
ma per il momento ti puoi arrangiare con questo

Buon lavoro!

Er Moderator
by Max_400
 
Cavolo... è più complicato del previsto!
io devo quindi converte questo modello php in javascript:

form...
PHP:
   <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
   <fieldset>
...
	<div>
	    <label for="nazione">Nazionalità <b>*</b></label>
		<select size="1" name="nazione" >
			<option selected value="1, Italia">Italia</option>
			<option value="0, Estero">Estero</option>
		</select> 
        </div>
...
        <div>
	     <label for="professione">Professione <b>*</b></label>					
		<select size="1" name="professione" >
			<option selected value="0.04, Azienda, 0">Azienda</option>
			<option value="0, Ingegnere, 0">Ingegnere</option>
			<option value="0, Architetto, 0">Architetto</option>
			<option value="0.04, Studente, 1">Studente</option>
			<option value="0.04, Privato, 1">Privato</option>
		</select>
        </div>
	<legend2>Quantità</legend2>
        <div>
	     <label for="licenze">N° Licenze <b>*</b></label>						
		<select size="1" name="licenze">
			<option selected>1</option>
			<option> 2</option>
			<option> 3</option>
			<option> 4</option>
			<option> 5</option>
			<option> 6</option>
			<option> 7</option>
			<option> 8</option>
 			<option> 9</option>
 			<option> 10</option>
		</select>
        </div>
        <div>
	<input type="submit" id="go" value="Conferma" />
	<p>I campi contrassegnati con <b>*</b> sono obbligatori</p>
        </div>
   </fieldset>
   </form>
...

modello di calcolo conto.php

PHP:
<?php

list($value, $professione, $riten) = explode(', ', $_POST['professione']);		// formato (%cnpaia; professione; 0
list($tax, $nazione) = explode(', ', $_POST['nazione']);
$n = $_POST['licenze'];

$a = 0.21;					// Imposta valore dell'IVA
$b = 0.20;					// Imposta valore della ritenuta
$prezzo1 = 350;					// Imposta prezzo base licenza
$prezzo2 = 250;					// Imposta prezzo scontato
$nsconto = 5;					// imposta numero min licenze per prezzo scontato

    if ($n >= $nsconto)
	  	{$prezzo = $prezzo2;
    }else{ 
		$prezzo = $prezzo1;}

$x		= $prezzo * $n;			// calcolo del prezzo

    if ($tax == 0)
	  	{$valuex = 0.04;
    }else{ 
		$valuex = $value;}

$cnpaia 	= $x * $valuex;			// calcolo del contributo CNPAIA

    if ($tax == 0)
	  	{$ivax = 0; $ritenutax = 0;
    }elseif ($riten == 1)
		{$ivax = $a; $ritenutax = 0; 
    }else 	{$ivax = $a; $ritenutax = $b;
		}

$iva 		= ($x+ $cnpaia) * $ivax;

$ritenuta 	= $x * $ritenutax;

$totale 	= $x + $cnpaia + $iva - $ritenuta ;

?>

è fattibile? come posso leggere in javascript le variabili di un menù select ed associare ad esse un numero che mi serve per effettuare il calcolo?
esiste l'equivalente di list($value, $professione, $riten) = explode(', ', $_POST['professione']);

Grazie,
M
 
Quanti scarabocchi....

Personalmente io uso PHP semplicemente per memorizzare 4 variabili
a volte anche per fare 4 calcoli.
Il tuo script si potrebbe sintetizzare...comunque questa è la sezione javascript
e quindi ti dò un select in javascript da cui estrarre i valori e metterli in una cella

In questo esempio puoi prelevare un numero dal menu ed indirizzarlo
ad una casella input col nome di "casella"


select-numero.jpg

http://max400.netne.net/select-casella-input.html

questo è il semplice codice
Codice:
numero: <input type="text" id="casella" size=5><br> 

<select id="sss" onChange="document.getElementById('casella').value=this.value">
<option value=0>seleziona</option>
<option value=10>a</option>
<option value=20>b</option>
<option value=30>c</option>
<option value=40>d</option>
</select>
<br>

In seguito poi... sommi il numero estratto con gli altri numeri
alla fine memorizzi il tutto con php.
 
Ottimo... E possibile anche impostare il campo value="10" in modo più complesso del tipo value="10,1,x" e successivamente esploderlo in + variabili come ho effettuato in php?

Thx
 
Ma certo... Egregio!

Però in javascript si usa dire "splittare" una stringa anzicchè exploderla come si usa in PHP

splitccc.jpg


Se per esempio modifichiamo il primo valore quello di a=10 in 10.568
e mettiamo un'ipotetica virgola o punto.
Possiamo creare un array di questo numero formato da 2 elementi:
il 10 (prima del punto) e il 568 (dopo il punto) vedi esempio

http://max400.netne.net/select-casella-input-arrotondamento.html

il codice:
Codice:
<script>
function arrotondamento(){
recupera=document.getElementById('casella').value;
arrotonda=recupera.split(".");
alert(arrotonda[0]);
}
</script>
numero: <input type="text" id="casella" size=5><br> 

<select id="sss" onChange="document.getElementById('casella').value=this.value">
<option value=0>seleziona</option>
<option value=10.568>a</option>
<option value=20>b</option>
<option value=30>c</option>
<option value=40>d</option>
</select>
<br>
___________________<input type=button onclick="arrotondamento()" value="arrotondamento">

Quest'esempio è molto importante per i numeri con la virgola
per prendere il primo valore
arrotonda[0] che corrisponde a 10
arrotonda[1] che corrisponde a 568

mentre in PHP si usa explode()

codice php
Codice:
<?php
$ip=$_SERVER['REMOTE_ADDR'];
$arr=explode(".",$ip);

echo $arr[0].$arr[1]." - il tuo ip";
?>

ad esempio 96.123.xx.xxx
risultato 96123

in javascript invece

alert(arrotonda[0]+arrotonda[1]);
 
Ultima modifica:

Discussioni simili