Page 1 sur 4

Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 13:35
par Benjam
Salut à tous,

je cherche à faire une page pour un site de correction en ligne et je tourne pas mal en rond (bon, je suis carrément bloqué, ok :mrgreen: ).

Il s'agit de la partie "devis"...en gros, le client copie son texte dans une fenêtre et il obtient le nombre de caractères de son texte et surtout combien ça lui coute.

J'ai pas mal cherché un peu partout sans succès...j'arrive à moitié à compter les caractères mais pas vraiment à mettre ça en relation avec un prix.

Bref, si une âme charitable pouvait m'aider, ça m'irait pas mal :wink:

Je précise que je tout le site a été fait avec un soft wysiwyg, autrement dit, je capte pas derche en PHP et je rappelle qu'on est dans la section débutant...bref, si vous pouviez me parler comme à un enfant de 8/9 ans, ça m'irait bien :mrgreen: :mrgreen:

Merciiii :D

PS: j'ai trouvé un exemple parfait chez la concurrence mais je ne sais pas si j'ai le droit de mettre cette page en lien...

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 13:45
par charabia
Pour compter le nombre de caractères d'une chaîne regarde cette fonction : strlen().

Une fois que tu auras le nombre de caractères, tu utilises des conditions pour le prix (si le prix a déjà été établi) :

si nbcarac est entre 0 et 10 alors prix = 5€ ...etc qui se traduit par :
$car = strlen($chaine);
if($car>=0 && $car<=10)
$prix=5;
elseif(...)
Tu peux aussi utiliser le switch.

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 13:47
par thehawk
en php regarde du coté de la fonction strlen ... et oui va falloir mettre les mains dans le camboui ;)

ce qui te donnerai quelques chose comme :
$text  = 'Je suis le texte à compter';
$longueur  = strlen($text);
$prix_unitaire = '10'; //10€ la lettre (pour l'exemple)
$prix = $longeur * $prix unitaire;
echo 'il vous coutera : '.$prix.' € pour le texte envoyer';
Donc montre nous ton code , pour voir comment l'intégrer.

Bye hawk
Edit : GrilleD

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 14:21
par FuZZyLine
Salut,
Salut à tous,
je cherche à faire une page pour un site de correction en ligne et je tourne pas mal en rond (bon, je suis carrément bloqué, ok :mrgreen: ).
Il s'agit de la partie "devis"...en gros, le client copie son texte dans une fenêtre et il obtient le nombre de caractères de son texte et surtout combien ça lui coute.
Dans une fenêtre? Hum, s'il s'agit d'une vérifiaction sans appel au serveur tu devras utiliser Javascript.
Ceci dit "Ajax" peut aussi le faire mais je doute que tu parles de cela.

Sinon, s'il s'agit (par exemple) d'un form il te suffit de récupérer la variable via $_POST ou $_GET, de
cibler la variable concernée puis d'effectuer le lancement de la function de comptage. l'exemple donné
ci-bas est basique et basé sur un forum de type POST:
if (isset($_POST[text_client]))
{
   $nombre = strllen($_POST[text_client]);
}
J'ai pas mal cherché un peu partout sans succès...j'arrive à moitié à compter les caractères mais pas vraiment à mettre ça en relation avec un prix. Bref, si une âme charitable pouvait m'aider, ça m'irait pas mal :wink:
La... J'avoue, honte à moi, que je pipe plus vraiment lol Ca reste suputation donc pas tapper ;)
   $pattern = "#([0-9*?]+)#iUsm";
   $test     = "Il est a 3,54 et des ...";
   if (preg_match_all($pattern, $test, $match) > 0)
   {
      // Tu récupère le chiffrage indiqué dans le tableau $match
      // Vérifie ainsi
      print_r($match);
   }
   else echo "Rien a été trouvé !";
?>
Je précise que je tout le site a été fait avec un soft [*]wysiwyg, autrement dit, je capte pas derche en PHP et je rappelle qu'on est dans la section débutant...bref, si vous pouviez me parler comme à un [**]enfant de 8/9 ans, ça m'irait bien :mrgreen: :mrgreen:
Merciiii :D
PS: j'ai trouvé un exemple parfait chez la concurrence mais je ne sais pas si j'ai le droit de mettre cette page en lien...
[/quote]
[*] Perso j'ai ~9 ans d'age mental, ca devrait aider ;)
[**] Abomination : Edit.com power ;)

Donc, après mes commentaires idiots l'explication du script:

$pattern est la chaine qui sert à checher dans le preg_match ce que tu veux y trouver.
$test est une chaine exemple tu y mets ce que tu veux... ('fin ce qui vient du client)
preg_match_all est la fonction de recherche php (il y en à d'autres) elle renvoit le nombre d'éléments trouvés
print_r liste le tableau (en production ne pas l'y mettre

voili, voilou... Espérant t'avoir aisé mais j'ai bien peur que non.

Ce lien devrait t'aider plus que je ne l'ai fais je pense: http://www.manuelphp.com/php/ref.pcre.php

@+ bon code ;)

PS: Fais "PT" le lien lol plus sèrieux je doute que passer un lien soit méchant... S'il suit, s'entend, la charte du fofo ;)

EDIT1: Encore grillé pfff, pas d'jeu les gars lol

EDIT2: C'est une fonction Javascript qui s'exécute lorsqu'on utilise le textarea afin de calculer
le nombre de caractères et le prix. l'algo semble facile à reproduire ceci dit ce post devrait
être transféré dans la section JS ;)

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 14:39
par Benjam
merci à tous de vous pencher sur mon cas...

bon, là, en première lecture, j'y capte que dalle mais je vais essayer de comprendre #-o...ce sera plus gratifiant!

allez, le lien:

http://www.lereviseur.com/21devis1.html

:-* :-*

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:00
par charabia
FuZZyLine a édité son post mais ça passe hélàs souvent inaperçu.

Tu dois donc comme dit, te diriger vers le javascript. Si tu regardes le code source tu auras un aperçu de ce que tu dois faire.

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:13
par Benjam
Ouais, c'est bien ce que je craignais, vous croyez que je m'y connais...ou alors les gamins de 9 ans que vous fréquentez sont des petits génies :mrgreen: :mrgreen: :mrgreen:

Bref, j'avoue tout mélanger entre html, php, javascript, etc... :roll:

Pour le code source du lien que j'ai filé, j'arrive pas à le chopper...enfin, je connais pas 36 méthodes, mais à ma manière (clique droit puis code source de la mache sous firefox), ça marche pas! :non: :non:

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:20
par charabia
heu...si ça marche je viens de le faire :lol:

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:35
par Benjam
heu...si ça marche je viens de le faire :lol:
gné :? :? :?

je clique droit sur cette page, rien ne se passe, rien ne s'ouvre...je fais ça ailleurs, on me propose les trucs classique (copier, coller, ..., code source de la page) mais sur cette page, que dalle, walou!

Testé sur deux PC différents, sous IE et FF :?: :?: :?: :?:

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:36
par charabia
oups autant pour moi, j'aurais juré avoir fait clic droit :roll:

fait alors affichage-> code source

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 15:41
par FuZZyLine
Re,
Ouais, c'est bien ce que je craignais, vous croyez que je m'y connais...ou alors les gamins de 9 ans
que vous fréquentez sont des petits génies :mrgreen: :mrgreen: :mrgreen:
Bref, j'avoue tout mélanger entre html, php, javascript, etc... :roll:
Pour le code source du lien que j'ai filé, j'arrive pas à le chopper...enfin, je connais pas 36 méthodes, mais à ma manière (clique droit puis code source de la mache sous firefox), ça marche pas! :non: :non:
Le "Môssieur" a posé un anti-click-droit... mais tu peux quand même chopper le script.
ceci dit:

[MORALE = ON]
Piquer un script est facile mais demande à tout hazard si tu peux le faire c'est plus cool ;)
[MORALE = OFF]

Sinon le code lui-même est adaptable assez simplement. Je t'assure que c'est pas trop "hardus".
D'autre part il est pas très "zoli" ca ressemble un peu à de la soupe de code lol

Point de départ de la recherche:
Le formulaire (élément TEXTAREA) et tu véras la fonction de lancement qui est limit()
ensuite, sans rentrer dans les détails, l'info du nombre de caractères et prix sont enregistrés et
intégrés via document.???.textHTML = xxx;

Ca parait un brin compliqué, peut-être, mais je t'assure qu'il n'en est rien.
JS utilise les objects et les indique ainsi: Pere.enfant1.enfant2.enfant3 etc...

bon code @+ ;)

PS: Je shématise afin d'être compréhenssible, désolé si ce n'est le cas.

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 16:00
par Benjam
Bon, effectivement, j'ai pu chopper le script...je vais essayer de le comprendre et de faire plus qu'un copier/coller/voler!

:agenouille: :agenouille: :agenouille: :agenouille:

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 16:06
par Superpilou
Après 30000 caractères, ton site a beugué et la textarea a disparu.
C'est normal?

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 17:08
par sadeq
Le plus important dans le code que tu veux est le suivant (c'est du javascript + html):
<html>
<script>
function limit ()
{
  var nb = document.frm.txtrea.value.replace (/[- \n\r]/g,"")
  document.frm.nbr.value = nb.length
  maxi = 200000//nombre maximum de carractères autorisé
  cmb = eval((nb.length*0.002+3)*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>
<body>
<form name="frm">
<textarea name="txtrea" rows="20" cols="60" onFocus='limit()' onChange="limit()"></textarea><br>
<font face="arial" size="3" color="#927B55">Caract&#232;res</font>&#160;&#160;<input name="nbr" type="text" value="0" size="5" readonly>&#160;&#160;&#160;
<font face="arial" size="3" color="#927B55">Prix</font>&#160;&#160;<input name="nbcalc" type="text" value="0" size="5" readonly>
&#160;<font face="arial" size="3" color="#927B55">Euros</font>
</form>
</body>
</html>

Re: Compteur de caractères pour devis en ligne

Posté : 27 août 2009, 22:15
par AB
Note : Comme je suppose que tu vas contrôler ce nombre ensuite en php, fait attention à l'encodage de ta page. Si c'est ISO ... machin, la fonction strlen suffira, par contre si tu travailles en utf-8 pour un site portable avec des langues étrangères regarde du côté de mb_strlen($machaine,'utf-8') .