Variabili in textbox

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio
ciao
ho risolto in questa maniera toglierndo gli alert, lasciando gli eventuali messaggi di errore al php
la cella vendita si calcola in automatico solo se acquisto o ricarico sono maggiori di 0
PHP:
<?php
if(isset($_POST['calcola'])){
	$acq=$_POST['acq'];
	$ric=$_POST['ric'];
	$errore="";//questi controlli se uno riesce a bypassare il js
	if($acq =="" || $acq <= 0 || is_nan($acq)){
		$errore.= "il prezzo di acquiso non puo essere vuoto o minore uguale a zero<br />";
   	}
    if($ric =="" || $ric <= 0 || is_nan($ric)){
        $errore.= "il ricarico non puo essere vuoto o minore uguale a zero<br />";
    }
    if($errore==""){
        $calcola=$acq*100/$ric;
        echo "prezzo finale: $calcola<br />";//qui al posto dell'echo metti l'insert per salvare
    }else{
        echo $errore;
        echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
}
?> 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<input type="text"  name="acq" onkeyup="vendita()" value="1" id="acq"/><br />
<input type="text"  name="ric" onkeyup="vendita()" value="1" id="ric"/><br />
<input type="text" readonly value="0" name="ven" id="ven"/><br />
<input name="calcola" type="submit"  id="calcola" value="calcola">
</form>
<script type="text/javascript">
function vendita() {
	var acq = document.getElementById('acq').value;
	var ric = document.getElementById('ric').value;
	if (acq <= 0 || ric <= 0){
		document.getElementById('ven').value = "--";
	}else{
		var ven = parseInt((acq * 100) / ric);
		document.getElementById('ven').value = ven;
	}
}
</script>
 
ok ora la provo subito! grazie :D mentre lo testo avrei un altro quesito che mi sembra facile ma non riesco a codificarlo... Io ho una database univoco con due tabelle magazzino e articoli.... dovrei prendere alcuni campi della tabella magazzino con tutti i record e spostarli sulla tabella articoli nei medesimi campi (si chiamano alla stessa maniera... Ovviamente deve essere una copia 1:1 ma con alcuni campi solamente... Che query dovrei utilizzare? Chiaramente il db è in mysql....
 
ciao,
ok hai perfettamente ragione ora apro un altro post... Ora però c'è un problema.. che credo sia facile da risolvere... Come posso fare per far si che calcoli anche numeri con la virgola? esempio acquisto 45,5 ricarico 10 = ((45,5 *100) /10) ??? se lo inserisco ora mi da NaN su vendita...
 
ciao
prova così, però stai attento che js e php usano il punto (non la virgola) per indicare i decimali
PHP:
<?php
if(isset($_POST['calcola'])){
	$acq=0.0+$_POST['acq'];
	$ric=0.0+$_POST['ric'];
	//var_dump($acq);echo "<br>";
	//var_dump($ric);echo "<br>";
	$errore="";//questi controlli se uno riesce a bypassare il js
	if($acq =="" || $acq <= 0 || is_nan($acq)){
		$errore.= "il prezzo di acquiso non puo essere vuoto o minore uguale a zero<br />";
   	}
    if($ric =="" || $ric <= 0 || is_nan($ric)){
        $errore.= "il ricarico non puo essere vuoto o minore uguale a zero<br />";
    }
    if($errore==""){
        $calcola=$acq*100/$ric;
        echo "prezzo finale: ".number_format($calcola, 2)." €<br />";//qui al posto dell'echo metti l'insert per salvare
    }else{
        echo $errore;
        echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
}
?> 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<input type="text"  name="acq" onkeyup="vendita()" value="1" id="acq"/><br />
<input type="text"  name="ric" onkeyup="vendita()" value="1" id="ric"/><br />
<input type="text" readonly value="0" name="ven" id="ven"/><br />
<input name="calcola" type="submit"  id="calcola" value="calcola">
</form>
<script type="text/javascript">
function vendita() {
	var acq = 0.0+document.getElementById('acq').value;
	var ric = 0.0+document.getElementById('ric').value;
	if (acq <= 0 || ric <= 0){
		document.getElementById('ven').value = "--";
	}else{
		//var ven = parseInt((acq * 100) / ric);
		var numero = (acq * 100) / ric;
		var ven = numero.toFixed(2);
		document.getElementById('ven').value = ven;
	}
}
</script>
 
ciao, ho avuto modo di provare il tuo script... non funziona... nel senso che, a parte che il ricarico è sbagliato... Se acquisto a 200, ricarico del 10% sarebbe 220€ mi segna 2000... Inoltre a parte questo non fa inserire piu di una cifra, a meno che non sposti il cursore a sinistra.. praticamente inserisce i numeri da destra verso sinsitra....
 
ciao
non so per la formula ricarico, ma l'hai indicata tu
Nel terzo la formula sarebbe ((Acquisto * 100)/ Ricarico) ed automaticamente si dovrebbe...

ora 200*100/10 = 200*10 = 2000.00

poi non capisco cosa intendi con ti permette di inserire una cifra e devo spostare il cursore
 
si la formula poi la rivedo io tranquillo np :)

Non so se lo hai testato.. Ma se provi vedrai che praticamente metti una cifra solamente.. se volessi metterne un altra devi spostare il cursore a sinistra e scrivere...
 
si effettivamente provandolo direttamente dal browser funziona correttamente... solamente che ho provato a cambiare il risultato per correggerlo ma non va...
Praticamente il calcolo sarebbe ven = (acq * ric) / 100 e nel box del calcolo finale va fatto prezzofinito = ven + acq... é un calcolo della percentuale di ricarico su un prodotto quindi se io acquisto a 100 € ricarico il prodotto del 10% sarebbe (100 * 10) /100 il risultato fa 10 € (ovvio) i 10 € vanno sommati al prezzo di acquisto... quindi 100 + 10... Non riesco a modificarlo.. ho fatto cosi ma nn funziona :


PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prova Vendita</title>
</head>

<body>
<?php
if(isset($_POST['calcola'])){
    $acq=0.0+$_POST['acq'];
    $ric=0.0+$_POST['ric'];
    //var_dump($acq);echo "<br>";
    //var_dump($ric);echo "<br>";
    $errore="";//questi controlli se uno riesce a bypassare il js
    if($acq =="" || $acq <= 0 || is_nan($acq)){
        $errore.= "il prezzo di acquiso non puo essere vuoto o minore uguale a zero<br />";
       }
    if($ric =="" || $ric <= 0 || is_nan($ric)){
        $errore.= "il ricarico non puo essere vuoto o minore uguale a zero<br />";
    }
    if($errore==""){
        $calcola=$acq*100/$ric;
        echo "prezzo finale: ".number_format($calcola, 2)." €<br />";//qui al posto dell'echo metti l'insert per salvare
    }else{
        echo $errore;
        echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    }
}
?> 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<input type="text"  name="acq" onkeyup="vendita()" value="1" id="acq"/><br />
<input type="text"  name="ric" onkeyup="vendita()" value="1" id="ric"/><br />
<input type="text" readonly value="0" name="ven" id="ven"/><br />
<input name="calcola" type="submit"  id="calcola" value="calcola">
</form>
<script type="text/javascript">
function vendita() {
    var acq = 0.0+document.getElementById('acq').value;
    var ric = 0.0+document.getElementById('ric').value;
    if (acq <= 0 || ric <= 0){
        document.getElementById('ven').value = "--";
    }else{
        //var ven = parseInt((acq * 100) / ric);
        var numero = (acq * ric) / 100;
		var numeroivato = numero + acq
        var ven = numeroivato.toFixed(2);
        document.getElementById('ven').value = ven;
    }
}
</script>
</body>
</html>
 
ciao
credo che tu stia sbagliando la formula
es.
costo €= 200
ricarico_pc = 10%
ricarico_euro €= 200*10/100 = 20
vendita €= 200+ 20 = 220
per cui la formula

vendita =costo*(1+ricarico_pc/100)

da cui il js
HTML:
<script type="text/javascript">
function vendita() {
    var acq = 0.0+document.getElementById('acq').value;
    var ric = 0.0+document.getElementById('ric').value;
    if (acq <= 0 || ric <= 0){
        document.getElementById('ven').value = "--";
    }else{
        //var ven = parseInt((acq * 100) / ric);
        //var numero = (acq * ric) / 100;
        var numeroivato = acq*(1+ric/100);
        var ven = numeroivato.toFixed(2);
        document.getElementById('ven').value = ven;
    }
}
</script>
e il php
PHP:
<?php
//....
    if($errore==""){
        $calcola=$acq*(1+100/$ric);
        echo "prezzo finale: ".number_format($calcola, 2)." €<br />";//qui al posto dell'echo metti l'insert per salvare
    }else{
//....
?>
 

Discussioni simili