Compteur de caractères pour devis en ligne

Eléphanteau du PHP | 16 Messages

06 sept. 2009, 18:57

Post dont ton code avec les elseif alors :wink:
ah, voilà quelqu'un de gentil et qui a compris que j'étais une bille ;)

alors, le code de ma page qui marche mais qui fait que la moitié du boulot:
<html>
<head>
<!-- DEBUT COMPTEUR DE CARACTERES -->
<title>Untitled</title>
<style type="text/css">
</style>
</head>
<noscript></noscript><body oncontextmenu="return false;"
style="background-color: rgb(228, 228, 228);" leftmargin="0"
topmargin="0" marginheight="0" marginwidth="0">
<script>
function limit ()
{
var nb = document.frm.txtrea.value.replace (/[- \n\r]/g,"")
document.frm.nbr.value = nb.length
maxi = 200000
if ((nb.length > 10)&& (nb.length <=20)) (cmb = eval((nb.length*0.9)*100))

else {cmb = eval((nb.length*0.002)*100)}
cmb2 = Math.round (cmb)/100
if (nb=="") {document.frm.nbcalc.value = "0"}
else {document.frm.nbcalc.value = ""+cmb2+""}
if (nb.length > maxi) {
document.frm.txtrea.value = nb.substring (0,maxi)
alert ('pas plus de '+maxi+' carractères !')
}
setTimeout('limit()',10)
}
</script><!-- FIN COMPTEUR DE CARACTERES -->
<center>
<table border="1" bordercolor="#b50e00" cellpadding="0" cellspacing="0"
height="0" width="770">
<tbody>
<tr>
<td><br>
<br>
<table cellpadding="0" cellspacing="0" height="0" width="770">
<tbody>
<tr>
<!-- PARTIE PRINCIPALE E DROITE --> <td class="texte" valign="top"
width="75%"> <br>
<div align="center"><!-- DEBUT COMPTEUR DE CARACTERES -->
<form name="frm"><textarea name="txtrea" rows="20" cols="60"
onkeypress="limit()"></textarea><br>
<font color="#927b55" face="arial" size="3">Caractères</font>&nbsp;&nbsp;<input
name="nbr" value="0" size="5" readonly="readonly" type="text">&nbsp;&nbsp;&nbsp;
<font color="#927b55" face="arial" size="3">Prix</font>&nbsp;&nbsp;<input
name="nbcalc" value="0" size="5" readonly="readonly" type="text">
&nbsp;<font color="#927b55" face="arial" size="3">Euros</font> </form>
<!-- FIN COMPTEUR DE CARACTERES --> </div>
<p style="margin-top: 77px; height: 0px;" class="texte"><br>
<br>
<br>
</p>
</td>
</tr>
</tbody>
</table>
<br>
</td>
</tr>
</tbody>
</table>
</center>
</body>
</html>

donc, quand j'ai cru comprendre le principe du elseif, bah j'ai inséré ton code Dr@ke, en modifiant les données pour que ça saute aux yeux pendant un test et en essayant de comprendre (pfiouuu, je croyais vraiment que je comprenais quelque chose ;)):

if ((nb.length > 10) && (nb.length <=20)) {cmb = eval((nb.length*0.9)*100);}
elseif ((nb.length > 20) && (nb.length <=50)) {cmb = eval((nb.length*9)*100);}
else {cmb = eval((nb.length*0.001)*100);}

voilààààààà :priere: :priere:

Mammouth du PHP | 985 Messages

06 sept. 2009, 19:33

Ok en gros tu t'es trompé de Section -> c'est du javascript ton code...
Un modérateur va surement le déplacer.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 27 Messages

06 sept. 2009, 19:47

Et si je puis me permettre de donner un conseil (qui je le reconnais ne fera pas avancer le problème), met ton JS dans un fichier séparé et appel le dans ta page de cette manière:
<script type="text/javascript" src="tonFichier.js"></script>
EDIT:
Voici ton code "corrigé".
Ajout des accolades et des points virgules manquant.

Je n'ai pas vérifié si tout code était fonctionnel ou pas, je me suis contenté de rajouter ce qui manquait.

Code : Tout sélectionner

function limit () { var nb = document.frm.txtrea.value.replace (/[- \n\r]/g,""); document.frm.nbr.value = nb.length; var maxi = 200000; if ((nb.length > 10)&& (nb.length <=20)) { cmb = eval((nb.length*0.9)*100); } else { cmb = eval((nb.length*0.002)*100); } cmb2 = Math.round (cmb)/100; if (nb=="") { document.frm.nbcalc.value = "0"; } else { document.frm.nbcalc.value = ""+cmb2+""; } if (nb.length > maxi) { document.frm.txtrea.value = nb.substring (0,maxi); alert ('pas plus de '+maxi+' carractères !'); } setTimeout('limit()',10); }

Et encore un conseil au passage, pour voir les erreurs dans ton code utilise le plugin firefox "Firebug".
Ca te permettra de voir où se trouvent tes erreurs! :)

Eléphanteau du PHP | 16 Messages

06 sept. 2009, 19:56

Merci Dr@ke et Babounet,

bon, je viens d'essayer mais ça ne marche pas...vous avez bien raison,il me manque les bases mais comme j'ai à faire ça une fois tous les trois ans, j'essayais juste de faire un truc qui marche en rafistolant quelques infos trouvées à droite à gauche! :roll: :roll:

Je capte même pas les différences entre JS et PHP (enfin, je vois bien que c'est pas pareil :mrgreen: mais à part ça 8-| 8-| )

Bref, je m'enfonce alors je vais essayer de comprendre tout ça en profondeur!

merci à tous d'avoir essayé en tout cas! :D :D

Eléphant du PHP | 369 Messages

06 sept. 2009, 20:02

Aie, j'avais zappé le début de ton topic [CONFUSED] 'fin, au vu de mon QI d'huitre et d'une mémoire de
poisson rouge, j'espere que tu me pardonneras :oops:

Eléphanteau du PHP | 16 Messages

06 sept. 2009, 20:12

Bon, un grand merci à tous pour votre aide...

je viens de résoudre mon problème et on peut dire quand même que c'est en partie grâce à vous!

en partie?

oui, parce que si elseif existe, ça n'est pas sous cette forme...allez, la soluce pour tout le monde:

function limit () {
var nb = document.frm.txtrea.value.replace (/[- \n\r]/g,"");
document.frm.nbr.value = nb.length;
var maxi = 200000;
if ((nb.length > 10)&& (nb.length <=20)) {
cmb = eval((nb.length*0.9)*100);
} else if ((nb.length > 20)&& (nb.length <=30)) {
cmb = eval((nb.length*9)*100);
} else {
cmb = eval((nb.length*0.002)*100);
}


en gros, il manquait un } et elseif c'est "else if" :mrgreen: :mrgreen: :mrgreen:

voilàààààà...merciiiii :D :D :D :D (j'ai bien lutté, j'ai pas du tout progressé, mais je suis content!) :mrgreen:

Mammouth du PHP | 985 Messages

06 sept. 2009, 20:24

Oui en Php c'est elseif et en javascript c'est else if...
Félécitation :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 16 Messages

06 sept. 2009, 22:28

bof, félicitations...j'aurais bien aimé comprendre un peu plus ce que je faisais et là c'est moyen!

mais bon, ça marche, c'est déjà ça!

allez, merci à tous en tout cas! :D :D

Eléphant du PHP | 369 Messages

07 sept. 2009, 09:30

Salut,
bof, félicitations...j'aurais bien aimé comprendre un peu plus ce que je faisais et là c'est moyen!
mais bon, ça marche, c'est déjà ça! allez, merci à tous en tout cas! :D :D
C'est bien le problème du Copier/Coler lol

Met des points de tests (alert) sur les lignes que tu comprends pas puis affiche les datas.
En gros, trace ;)

Javascript s'inscrit dans les langages objets et la lecture se faisant de gauche à droite tu peux
représenter la hyérarchie ainsi: parent.fils... OU ancêtre.descendant_direct.descendant_direct...

Code : Tout sélectionner

object = new Object(); object.value;
Simple rappel:
js, bien que langage objet, ne concoit pas les class. Tout est fonction & tout est objet.
autrement dit c'est toi qui décide d'utiliser une fonction comme "pseudo class" etc...

@+ ;)

PS: Je suis vraiment pas ludique dans mes explications lol

ViPHP
AB
ViPHP | 5818 Messages

07 sept. 2009, 13:07

Oui en Php c'est elseif et en javascript c'est else if...
Félécitation :wink:
D'ailleurs comme php reconnait également très bien le "else if" (en deux mots) il est plus facile d'utiliser toujours cette syntaxe pour ne pas avoir de problème en passant d'un langage à l'autre :wink:

Sinon Benjam, si ton sujet est résolu penses à valider une réponse pour signaler que ton problème est résolu :)

Mammouth du PHP | 985 Messages

07 sept. 2009, 13:18

D'ailleurs comme php reconnait également très bien le "else if" (en deux mots) il est plus facile d'utiliser toujours cette syntaxe pour ne pas avoir de problème en passant d'un langage à l'autre :wink:
Ah je ne savais pas...
Surtout que le else if est utilisé en c aussi, je l'utilise pour développer des plugins Palace...
Mais bon, j'avais pris cette habitude, va être dure de changer :wink:
Modifié en dernier par Dr@ke le 07 sept. 2009, 13:49, modifié 2 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 16 Messages

07 sept. 2009, 13:47


Sinon Benjam, si ton sujet est résolu penses à valider une réponse pour signaler que ton problème est résolu :)
euuu, y'a un truc officiel à faire, un lien à cliquer ou je remets juste un dernier post avec la solution?

Mammouth du PHP | 985 Messages

07 sept. 2009, 13:49

En fait non, il est préférable de toujours utiliser la syntaxe elseif car:
Note: A noter que elseif et else if sont traités de la même façon seulement quand des accolades sont utilisées, comme dans l'exemple ci-dessus. Quand vous utilisez ":" pour définir votre condition if/elseif, vous ne devez pas séparer else if en deux mots, sans quoi PHP soulèvera une erreur d'interprétation.
euuu, y'a un truc officiel à faire, un lien à cliquer ou je remets juste un dernier post avec la solution?
Tu cliques sur le petit icône vert dans le message qui pour toi t'a donné la solution...
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
AB
ViPHP | 5818 Messages

07 sept. 2009, 21:01

En fait non, il est préférable de toujours utiliser la syntaxe elseif car:
Note: A noter que elseif et else if sont traités de la même façon seulement quand des accolades sont utilisées, comme dans l'exemple ci-dessus. Quand vous utilisez ":" pour définir votre condition if/elseif, vous ne devez pas séparer else if en deux mots, sans quoi PHP soulèvera une erreur d'interprétation.
En fait non, car tu ne trouveras quasiment jamais - en tous cas jamais vu sur ce forum ni ailleurs, ce doit donc être assez rare - une convention de codage php comme tu la mentionne (utiliser ":" pour définir une condition if/elseif). Sans doute parce que c'est moins lisible et qu'il est plus simple d'utiliser des conventions les plus communément utilisées.

Et quand on fait un site web on passe naturellement assez souvent de php à javascript... donc on va pas s'enquiquiner à prendre l'habitude d'écrire "elseif" et faire des erreurs d'étourderie en passant par exemple à javascript, sous prétexte que cette écriture est nécessaire pour une autre convention de codage quasiment jamais utilisée en php :wink:

Donc tu fais comme tu veux, mais d'un point de vue pratique, il est inexact de dire qu'il est préférable de toujours utiliser la syntaxe "elseif" plutôt que "else if", puisque c'est exactement l'inverse :)

@Benjam, alors toujours pas repéré ce petit bouton à coché vert qui doit se situé en haut à droite de chaque message, pas loin du bouton "citer" ?

Eléphant du PHP | 369 Messages

08 sept. 2009, 08:43

[...]
En fait non, car tu ne trouveras quasiment jamais - en tous cas jamais vu sur ce forum ni ailleurs, ce doit donc être assez rare - une convention de codage php comme tu la mentionne (utiliser ":" pour définir une condition if/elseif). Sans doute parce que c'est moins lisible et qu'il est plus simple d'utiliser des conventions les plus communément utilisées.
[*]Et quand on fait un site web on passe naturellement assez souvent de php à javascript... donc on va pas s'enquiquiner à prendre l'habitude d'écrire "elseif" et faire des erreurs d'étourderie en passant par exemple à javascript, sous prétexte que cette écriture est nécessaire pour une autre convention de codage quasiment jamais utilisée en php :wink:
[...]
+1 je vais même jusqu'à +2 ;)

[*] Perso, switcher de l'un à l'autre j'en viens à oublier des $ en php et en ajouter en JS, alors, c'est clair: moins de différences ca rend plus de productivité lol (en tout cas dans mon cas;)

@Dr@ke: La première règle pour un codeur/développeur c'est de penser qu'un autre gugusse prendra la
relève de ton code et de tout faire pour simplier sa lecture donc sa compréhension.

http://www.manuelphp.com/php/control-st ... elseif.php
En PHP, vous pouvez aussi écrire " else if " en deux mots et son comportement sera identique à la version en un seul mot.
Pourquoi faire simple quand on peut faire compliqué? lol