Newsgroup: it.comp.www.php
Titolo: Passare variabili numeriche

Ciao a tutti
date le variabili numeriche Var a e Var b da passare a una pagina.php 
tramite form vorrei sapere qual'è il sistema migliore tra
document.write("input type='hidden' name='first' value="+a+">");
oppure
document.write('input type="hidden" name="second" value='+b+'>');
In ognuno dei 2 casi c'è qualche trucco per passare variabili numeriche?
questo perchè la variabile in arrivo letta con REQUEST non è numerica come 
l'avevo l'anciata e non riesco ad usarla così come arriva come numero
Cosa devo fare perchè parta e arrivi come numero?
Grazie e Buone Feste

 Grazie e Buone Feste
Grazie, altrettanto.
Ciao.
-- 
Federico

 Federico
Grazie Federico adesso è OK
unico neo è che se il numero è senza decimali anche se io metto 
(float)trim("6.00") me lo mette come int togliendo gli zeri mentre io vorrei 
che fosse sempre float con 2 decimali che in questo caso sono due zeri
quindi se un numero fosse 6 io vorrei che fosse mostrato come 6.00 tal quale 
mysql me lo salva
Come posso fare in bellezza a forzare che siano presenti i due decimali
Grazie

 Come posso fare in bellezza a forzare che siano presenti i due decimali
Quando lo stampi formattalo, se non lo stai stampando non ha molto senso 
parlare di quanti decimali ha.

 mysql me lo salva
 
Come ha scritto Andrea D'Amore al momento della visualizzazione puoi
fare in modo di mostrare sempre due cifre decimali, per esempio con la
funzione number_format(), vedi 
http://www.php.net/number_format
.
<?php
$a = '6.00';
$a = (float)$a;
var_dump($a);
echo '<br>';
echo number_format($a, 2, ',', '.');
?>
 
Ciao.
-- 
Federico

Ciao a tutti
pensavo fosse tutto a posto avendolo testato solo su FF
Oggi ho testato l'acquisizione delle due variabili uno e due e la loro somma 
su MSIE ma una delle due non la legge
e la somma delle due è pari al valore di una soltanto
$uno=(float)trim($_REQUEST['uno']);
$due=(float)trim($_REQUEST['due']);
$totale=$uno+$due;
se $_REQUEST['uno'] era pari a 17.21 e se $_REQUEST['due'] era pari a 2.00 
FF mi da un totale di 19,21 mentre msie mi da un totale di 2.00 ovvero MSIE 
non somma le due variabili ma mi da come totale il valore della seconda
Che fare?
Grazie

 Che fare?
Qualche consiglio. Non usare $_REQUEST, ma $_GET o $_POST a seconda del
metodo che stai usando. Prima di usare un parametro passato a una
pagina e che può essere manipolato accertati che esista. Assicurati che
nel file php.ini la direttiva error_reporting sia abilitata su E_ALL in
modo da visualizzare anche gli eventuali Notice.
Il seguente codice di prova:
<?php
$uno = isset($_GET['uno']) ? (float)trim($_GET['uno']) : 0;
$due = isset($_GET['due']) ? (float)trim($_GET['due']) : 0;
$totale = $uno + $due;
echo 'Totale: '.$totale;
?>
<p><a href="<?php echo $_SERVER['PHP_SELF']; ?>?uno=17.21&amp;due=2.0">Clicca qui</a></p>
funziona perfettamente su IE6, Firefox 2.0.0.11 e Opera 9.25 (tutti su
Windows XP). Non ho sottomano un IE7, ma non ho motivo di ritenere che
su di esso non funzioni.
Se puoi, cerca di isolare il problema e poi riporta il codice
incriminato.
Ciao.
-- 
Federico

 e la somma delle due è pari al valore di una soltanto
MSIE o Firefox non fanno niente tranne passare i dati e visualizzare il
risultato, quindi il problema va cercato altrove.
Prima di eseguire somme cast o simili fai un print_r($_REQUEST), fallo
girare con entrambi i browser e valuta la differenza; in tal caso
controlla le query string, sicuramente c'e' qualcosa di sintatticamente
non valido e un browser la interpreta correttamente, l'altro la ignora.
   Francesco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it