Passage de variable en URL avec le JS

Fermé
php developper - 15 oct. 2008 à 14:57
 php developper - 15 oct. 2008 à 16:10
Bonjour,
Je vais essayer d'expliquer mon probleme
je suis entrain de construire un bon de livraison en php/pdf
tout marchait tres bien sauf que je rencontre maintenant un probleme l'integration du javascript ( bout de code pour faire la conversion des chiffres en lettre) dans EZPDF alors j'ai pense a faire passer mon total en url, le recuperer dans une page intermediaire qui va me servir a convertir mon total en lettre et puis je transmet cette nouvelle valeur a la page (BLpdf.php) qui traitera mon pdf voici le code de la page intermdiaire

<?php $total=$_GET['total'];?>
<script language="javascript" src="../site/script_money.js"></script>
<script>var dd= ConvNumberLetter('xxxxxx', 1, 0)
</script>
<?php $id = $_GET['id'];?>
<script language="Javascript">

document.location.replace("BLpdf.php?'total='+dd+'&id=<?=$id?>'")

</script>

donc
le premier probleme est comment integre mon total (se trouve normalement a la place de xxxxx )qui est une variable php dans un code js
le 2eme probleme : l'url de la page BLpdf.php est http://aaa/aaa/pdf/BLpdf.php?'total='+dd+'&id=15'
comme vous voyez ici j'arrive a recuperer l'id qui correspond au numero de mon bon de livraison mais j'arrive pas a recuperer mon total converti en lettre sachant ke j'ai mis a la place de xxxxxx un float de type 123,456( pour faire le test en oubliant le 1er probleme)

j'espere que mon probleme soit clair
SVP aidez moi
Merci infinement

3 réponses

php developper
15 oct. 2008 à 15:48
Merci beaucoup pour votre reponse j'ai change mon code

<?php $total = $_GET['total'];?>
<script language="javascript" src="../site/script_money.js"></script>
<script>var dd= ConvNumberLetter('<?php echo $total;?>', 1, 0);
</script>
<?php $id = $_GET['id'];?>
<script language="Javascript">

document.location.replace("BLpdf.php?total="+dd+"&id=<?php echo $id;?>'");
</script>

tout marche bien sauf que la variable total= undefined

voici le contenu du fichier script_money.js

function ConvNumberLetter_fr(Nombre, bCheckFloat) {
var strNombre = new String(Nombre) ;
var TabNombre = new Array() ;
var strLetter = new String() ;

if(isNaN(parseFloat(Nombre))) return "";

if(bCheckFloat) {
TabNombre = strNombre.split(".") ;
if(TabNombre.length > 2 || TabNombre.length <= 0) return "" ;
for(var i = 0; i < TabNombre.length; i++) {
if(i == 0)
strLetter = strLetter + ConvNumberLetter(parseFloat(TabNombre[i]), 1, 0) ;
else
strLetter = strLetter + ConvNumberLetter(parseFloat(TabNombre[i]), 0, 0) ;
}
return strLetter ;
}
else {
strLetter = ConvNumberLetter(Nombre, 1, 0) ;
return strLetter ;
}
}

function ConvNumberLetter(Nombre, Devise, Langue) {
var dblEnt, byDec ;
var bNegatif;
var strDev = new String();
var strCentimes = new String();

if( Nombre < 0 ) {
bNegatif = true;
Nombre = Math.abs(Nombre);
}
dblEnt = parseInt(Nombre) ;
byDec = Math.round((Nombre - dblEnt) * 1000) ;
if( byDec == 0 ) {
if (dblEnt > 999999999999999) {
return "#TropGrand" ;
}
}
else {
if (dblEnt > 9999999999999.99) {
return "#TropGrand" ;
}
}
switch(Devise) {
case 0 :
if (byDec > 0) strDev = " virgule" ;
break;
case 1 :
strDev = " Euro" ;
if (byDec > 0) strCentimes = strCentimes + " Cents" ;
break;
case 2 :
strDev = " Dollar" ;
if (byDec > 0) strCentimes = strCentimes + " Cent" ;
break;
}
if (dblEnt > 1 && Devise != 0) strDev = strDev + "s" ;

var NumberLetter = ConvNumEnt(parseFloat(dblEnt), Langue) + strDev + " et " + byDec + " ." ;
return NumberLetter;
}

function ConvNumEnt(Nombre, Langue) {
var byNum, iTmp, dblReste ;
var StrTmp = new String();
var NumEnt ;
iTmp = Nombre - (parseInt(Nombre / 1000) * 1000) ;
NumEnt = ConvNumCent(parseInt(iTmp), Langue) ;
dblReste = parseInt(Nombre / 1000) ;
iTmp = dblReste - (parseInt(dblReste / 1000) * 1000) ;
StrTmp = ConvNumCent(parseInt(iTmp), Langue) ;
switch(iTmp) {
case 0 :
break;
case 1 :
StrTmp = "mille " ;
break;
default :
StrTmp = StrTmp + " milles " ;

}
NumEnt = StrTmp + NumEnt ;
dblReste = parseInt(dblReste / 1000) ;
iTmp = dblReste - (parseInt(dblReste / 1000) * 1000) ;
StrTmp = ConvNumCent(parseInt(iTmp), Langue) ;
switch(iTmp) {
case 0 :
break;
case 1 :
StrTmp = StrTmp + " million " ;
break;
default :
StrTmp = StrTmp + " millions " ;
}
NumEnt = StrTmp + NumEnt ;
dblReste = parseInt(dblReste / 1000) ;
iTmp = dblReste - (parseInt(dblReste / 1000) * 1000) ;
StrTmp = ConvNumCent(parseInt(iTmp), Langue) ;
switch(iTmp) {
case 0 :
break;
case 1 :
StrTmp = StrTmp + " milliard " ;
break;
default :
StrTmp = StrTmp + " milliards " ;
}
NumEnt = StrTmp + NumEnt ;
dblReste = parseInt(dblReste / 1000) ;
iTmp = dblReste - (parseInt(dblReste / 1000) * 1000) ;
StrTmp = ConvNumCent(parseInt(iTmp), Langue) ;
switch(iTmp) {
case 0 :
break;
case 1 :
StrTmp = StrTmp + " billion " ;
break;
default :
StrTmp = StrTmp + " billions " ;
}
NumEnt = StrTmp + NumEnt ;
return NumEnt;
}

function ConvNumDizaine(Nombre, Langue) {
var TabUnit, TabDiz ;
var byUnit, byDiz ;
var strLiaison = new String() ;

TabUnit = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept",
"huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze",
"seize", "dix septs", "dix huits", "dix neufs") ;
TabDiz = Array("", "", "vingt", "trente", "quarante", "cinquante",
"soixante", "soixante", "quatre vingts", "quatre vingts") ;
if (Langue == 1) {
TabDiz[7] = "septante" ;
TabDiz[9] = "nonante" ;
}
else if (Langue == 2) {
TabDiz[7] = "septante" ;
TabDiz[8] = "huitante" ;
TabDiz[9] = "nonante" ;
}
byDiz = parseInt(Nombre / 10) ;
byUnit = Nombre - (byDiz * 10) ;
strLiaison = " " ;
if (byUnit == 1) strLiaison = " et " ;
switch(byDiz) {
case 0 :
strLiaison = "" ;
break;
case 1 :
byUnit = byUnit + 10 ;
strLiaison = "" ;
break;
case 7 :
if (Langue == 0) byUnit = byUnit + 10 ;
break;
case 8 :
if (Langue != 2) strLiaison = " " ;
break;
case 9 :
if (Langue == 0) {
byUnit = byUnit + 10 ;
strLiaison = " " ;
}
break;
}
var NumDizaine = TabDiz[byDiz] ;
if (byDiz == 8 && Langue != 2 && byUnit == 0) NumDizaine = NumDizaine + "s" ;
if (TabUnit[byUnit] != "") {
NumDizaine = NumDizaine + strLiaison + TabUnit[byUnit] ;
}
else {
NumDizaine = NumDizaine ;
}
return NumDizaine;
}

function ConvNumCent(Nombre, Langue) {
var TabUnit ;
var byCent, byReste ;
var strReste = new String() ;
var NumCent;
TabUnit = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept","huit", "neuf", "dix") ;

byCent = parseInt(Nombre / 100) ;
byReste = Nombre - (byCent * 100) ;
strReste = ConvNumDizaine(byReste, Langue)
switch(byCent) {
case 0 :
NumCent = strReste ;
break;
case 1 :
if (byReste == 0)
NumCent = "cent" ;
else
NumCent = "cent " + strReste ;
break;
default :
if (byReste == 0)
NumCent = TabUnit[byCent] + " cents" ;
else
NumCent = TabUnit[byCent] + " cents " + strReste ;
}
return NumCent;
}
0
php developper
15 oct. 2008 à 16:10
et bein ca marche j'ai uniquement mal enrigistrer le fichier script_money.js
meci beaucoup
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
15 oct. 2008 à 15:26
Salut !
Pour le premier problème, y'a un truc qui colle pas là :
document.location.replace("BLpdf.php?'total='+dd+'&id=<?=$id?>'")
Tu ne précises pas quel bout de l'url doit être remplacé (plus d'infos).
Je verrais plutôt un truc dans ce genre :
document.location.replace("BLpdf.php", "BLpdf.php?'total='+dd+'&id=<?=$id?>

Ensuite, es-tu sûr de la syntaxe <?= ... ?> ? Peut-être que ton serveur ne supporte pas cette écriture. Pour être certain que ça marche, et même que ça marchera toujours si tu dois change de serveur un jour, essaye plutôt ceci :
document.location.replace("BLpdf.php",
     "BLpdf.php?'total='+dd+'&id=<?php echo $id; ?>'")


Pour le 2e problème, je pense que ça vient de ta fonction ConvNumberLetter(), peux-tu me la montrer ?
-1