[PHP] Verif caractère dans un input et modif

Résolu/Fermé
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 - 20 sept. 2011 à 15:56
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 23 sept. 2011 à 10:22
Bonjour,

Je prépare un petit attrape nigot en php pour un projet de BTS ^^ !

Et j'aurais besoin de vos lumières...

Car dans un champ, j'aimerais :

Que si la personne met le caractère " . " (point), cela n'affiche pas le " . " mais un autre caractère et ainsi de suite jusqu'a ce qu'un " . " soit remis.

Les caractères donc "cachés" entre ces " . " seront enregistrés dans une variables par la suite...

Merci d'avance

et n'ésitez pas pour plus de précisions !



A voir également:

21 réponses

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
23 sept. 2011 à 09:37
Salut digsaw,

Pour information oui, j'ai fait en sorte que la phrase s'affiche d'un coup une fois le 2e point marqué, ça évite les problème de phrase tronquée genre "Voulez-vous rep à ma question" ou autre : meilleur camouflage. Je peux l'enlever si ça te dérange.

Et j'imagine bien que tu veux utiliser ta variable, c'est pour ça que j'ai stocké la réponse dans la variable globale vraieReponse, accessible partout dans la page en Javascript (c'est le principe d'une variable globale!).

Pour la traiter en PHP tu as plusieurs méthodes : tu peux l'ajouter à un champ caché du formulaire de réponse et elle sera transmis en _POST ; ou bien utiliser une requête AJAX pour la traiter indépendamment.
0
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
23 sept. 2011 à 09:40
OK dac !

Alors non ça ne me dérange pas mais j'aimerais savoir comment tu ferais pour le changer ? (c'est toujours bon à savoir ^^)

Et pour la variable globale j'y avais penser mais je ne savais pas comment y accéder en PHP ! merci beaucoup :)
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
23 sept. 2011 à 09:50
C'est simple, dans le code il y a un if comme celui-ci :

if (input.value.match(/^V.+\./) && reponseEnCours == true){

Qui signifie clairement "quand la ce qu'il y a dans l'input commence par V majuscule, puis comporte au moins un caractère et qu'un point la termine".
Dans ce if je remplace tout le contenu de l'input par la phrase désirée => il faut changer cela.

Par contre tu vois, si le mec écrit : "Vous êtes bons." ça va être interprété par une réponse ; il faudrait ajouter quelques conditions et affiner les regexp. Là, il y a plein de cas où ça peut planter !
0
digsaw_- Messages postés 489 Date d'inscription lundi 14 septembre 2009 Statut Membre Dernière intervention 24 septembre 2013 57
23 sept. 2011 à 09:53
Ouai mais c'est pas un problème pour sa ! ;) merci pour l'explication !

Par contre j'y arrive pas pour mettre la réponse cachée dans un autre champ... désolé en plus sa a l'air simple mais aujourd'hui j'ai la tête dans les choux ^^
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
23 sept. 2011 à 09:56
Je pense qu'il faut que tu ajoute un champ de type "hidden" dans le formulaire, et tu lui donne un ID genre "hiddenVraieReponse" (et un name également) ;

ensuite, dans le 'if' dont j'ai parlé ci-avant, tu ajoute au dessus de la ligne commentée :
//alert("Debug - La réponse rentrée est : "+vraieReponse);
La ligne suivante :

document.getElementById("hiddenVraieReponse").value = vraieReponse;

Et normalement une fois validé le formulaire, en PHP tu récupèreras un $_POST["hiddenVraieReponse"] (ou autre, selon le 'name' que tu as mis).
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
23 sept. 2011 à 09:57
PS : n'hésite pas à mettre le sujet en résolu quand ça sera OK ; et de voter +1 au "code final" afin d'aider les futures recherches des internautes.
0