Vous n'êtes pas identifié(e).
Bonjour!
Je cree une fonction regex, qui va s'appliquer sur tous les champs (nom, prenom,..) en utilisant Json:
// DOM
$(document).ready(function(){
// au focus sur le nom
$('.nom').focus(function(){
// serlializer les donnees
var dataString = $('form').serialize();
$.ajax({
type: 'POST',
url: 'verif.php',
data: dataString,
dataType: 'json',
success: function(response) {
// appeller la fonction
verifierRegex('nom'));
}
})
});
});
</script>
verif.php
// j'ai mis par defaut Regex afin de tester
$nom_verif = 'Regex';
// je recupere le retour
$retour['nom_verif'] = $nom_verif;
// je l encode en JSON
echo json_encode($retour);
?>
merci a vous
Dernière modification par rimie (27-04-2012 05:47:28)
Hors ligne
Saluton,
Et alors ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Et alors ? !!!!!!!!!!!!!!!
ZORO est arriiiiivvvvéééééééééééééééééhhéééééééééééhhhhééééééééééééééééééé
sans s'pressééééééééééééééééééééhhééééééééééééhhhéééééééééééééééééééé
à vrai dire, j'ai pas bien compris non plus :D
a++
Hors ligne
ca me retourne undefined, est ce que la methode d'inclure une fonction dans une autre est correcte
Hors ligne
>>est ce que la methode d'inclure une fonction dans une autre est correcte
oui.
montre un peut ton code si tu veux qu'on t'aide.
a++
Hors ligne
c'est la fonction verifierRegex() qui est aus ein de document
Hors ligne
tu ne parse pas ton JSON
a++
Hors ligne
Hors ligne
je ne sais pas comment le parser, voila le code en entier pour mieux comprendre:
<script type="text/javascript">
// fonction de verification de la longueur des caracteres
function Chars(data, field)
{
if(data.field+'_check' == 'caracteres')
{
$('.'+field+'Error').html('<B>Le champs X contient plus de 40 caracteres ou moins de 5 caracteres</B>').show(1000);
}
else
{
$('.'+field+'Error').html('<B>OK</B>').show(1000);
}
}
$(document).ready(function(){
$('.pseudo').keyup(function(){
var dataString = $('form').serialize();
$.ajax({
type: "POST",
url: "verif.php",
data: dataString,
dataType: "json",
success: function(data) {
alert(Chars('data', 'pseudo'));
}
});
});
});
</script>
</head>
<form name="advanced" class="advanced" method="POST" accept="<?php $_SERVER['PHP_SELF']; ?>">
Pseudo: <input type="text" name="pseudo" class="pseudo" /><span class="pseudoError"></span><br />
E-mail: <input type="text" name="email" class="email" /><span class="emailError"></span><br />
</form>
verif.php:
$pseudo_check = 'caracteres';
$return["pseudo_check"] = $pseudo_check;
$obj = json_encode($return);
echo $obj;
//$obj->return;
//print_r($obj);
?>
merci a vous
Dernière modification par rimie (27-04-2012 05:48:21)
Hors ligne
a++
Hors ligne
voila la reponse:
JSON.Parse is not a function
ret=JSON.Parse(data);
Hors ligne
scuze :
c'est: JSON.parse(data)
a++
Hors ligne
ret = JSON.parse(data);
alert(ret);
voila:
JSON.parse: unexpected character
ret = JSON.parse(data);
voila les donnees json:
{"pseudo_check":"caracteres"}
Dernière modification par rimie (27-04-2012 06:27:14)
Hors ligne
on n'oublie pas que je devais utiliser la fonction function Chars(data, field)
Hors ligne
Juste pour info, JSON.parse est instable sous IE8 tout comme JSON.stringify et parfois (très rarement) avec d'autres navigateurs. Pour le stringify on est obligé de faire avec et utiliser des solutions maison pour le stabiliser. Je te recommande fortement pour tout ce qui est JSON et autre que stringify en méthode, vu que tu utilises JQUERY, d'utiliser les méthodes JSON jquery à chaque fois que cela t'es possible. Sinon pour ton parse, pour les mêmes raisons, utilises plutôt jQuery.parseJSON()
Ensuite au niveau de ton code, pourquoi mets-tu des guillemets à caractères? A mon avis ton problème viens de là.
++
EDIT: Sinon un conseil, active ton debuggeur, place un point d'arrêt sur la ligne de ton parse et vérifie à l'éxécution du bon format de ret, il se peut que si tu as un message d'erreur qui est retourné en même temps que ta variable JSON, ou un caractère parasite qui a été généré par une erreur dans ton code, cela soit la raison de ton problème car le parseur ne peut parser qu'une chaîne JSON valide.
Dernière modification par Jc (27-04-2012 12:17:17)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
j'utilise firefox 11
je veux bien integrer une la fonction Chars au sein de la methode document
Hors ligne
elle doit faire quoi ta fonction ?
a++
Hors ligne
elle doit faire quoi ta fonction ?
a++
je cree une fonction pour verifier la regex des champs, par exemple, j'ai 3 formulaires dans mon site, et chaque formulaire a 2 champs, donc un total de 6 verifications regex, au lieu de mettre:
// etc
// verification champs x formulaire n
}
je mets comme ca:
et fonctionRegex aura tous les parametres necessaires: la regex, la class du champs, la place ou l'erreur va s'afficher,...
j'aurais 6 lignes (6 champs a verifier) au lieu de mettre document.ready + la verification de chaque champs
Hors ligne
Bonsoir,
Ce que tu souhaites faire, c'est chouette sur le papier, mais faudra que tu m'expliques comment tu fais pour
1) Appliquer un pattern qui fonctionne pour tous les champs d'un même formulaire.
2) Faire matcher une expression au fil de l'eau.
Merci pour tes réponses.
Dernière modification par Jc (29-04-2012 21:57:55)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
1) Appliquer un pattern qui fonctionne pour tous les champs d'un même formulaire.
le pattern, ou bien une expression reguliere, serait differente d'un cas a un autre, par exemple:
nom: a-z
password: a-zA-Z
avec une fonction PHP:
alors avec cette fonction, je vais mettre:
nom:
password:
a la fin du document je vais encoder les resultats:
cote JS au retour des encode json::
c'est la partie que j'ai pose en demande d'explication, comment integrer cette fonction avec celle du DOM
la partie field est le nom du champs, et field_check, c'est le nom du champs + check
2) Faire matcher une expression au fil de l'eau.
cette partie je ne l'ai pas retenue
Dernière modification par rimie (30-04-2012 03:04:42)
Hors ligne
Bonsoir,
Si tu n'a pas retenu ma deuxième question, c'est pourtant exactement ce que tu essayes de faire avec ton
En effet, tu requêtes ton serveur (via ajax pour répondre à ton problème d'intégration posé) à chaque caractère saisi dans chaque input de ton formulaire. Non seulement cela ne sert à rien dans ton cas (cela ne sert que pour faire de l'autocomplétion) mais c'est très coûteux en termes de ressources.
Ensuite, si tu souhaites rester efficace, il ne faut pas oublier que utiliser internet c'est avant tout penser client serveur. Il est donc plus opportun de tester tous tes champs à la fin en une seule fois ou champ par champ (sur un onblur par exemple) et de le faire localement c'est à dire ne pas requêter ton serveur PHP pour quelque chose qui peut être fait localement.
Un exemple serait d'inclure ton environnement d'erreur au chargement de la page comme ceci (je détaille les css inline pour l'exemple)
Ensuite en javascript un truc du genre
}
++
Dernière modification par Jc (30-04-2012 03:50:47)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
oui je suis d'accord avec toi, on peut effectuer ces operations sans charger le serveur, cote JS seulement, maintenant on a une fonction:
// traitement de donnees
}
si on veut mettre 2 ou plusieurs evenements sur cette fonction, tu as mis onblur:
je veux la mettre de cette maniere:
est ce que c'est une bonne methode?
ma question est TOUJOURS: pourquoi au retour des donnees, alert donne UNDEFINED, c'est quoi l'erreur exactement
Dernière modification par rimie (01-05-2012 00:35:40)
Hors ligne
Bonjour,
Concernant ton undefined, je t'ai déjà donné une méthode pour comprendre d'où viens ton problème. Cependant après relecture, tu n'as visiblement toujours pas compris comment fonctionne json du côté php. Quand tu passes une variable JSON du côté php, il te faut d'abord la décoder avec un json_decode() pour pouvoir y appliquer des traitements php, mais cela n'est pas suffisant dans ton cas. En effet, tu traites ta variable json comme si c'était un tableau associatif en php. Or une fois décodé, ton objet json est toujours considéré comme un objet en l'occurence un objet stdClass. Tu dois donc revoir l'ensemble de tes traitements php, parce lorsque tu les renvoie à javascript, à cause de cela, tu te retrouves avec quelque chose qui est tout sauf un objet JSON correctement formé.
Pour le reste et pour pouvoir te répondre pourquoi as-tu besoin de faire un traitement sur .focus, .blur, et .keyup ????
++
Dernière modification par Jc (01-05-2012 08:49:14)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Concernant ton undefined,
le resultat cote json est:
{"pseudo_check":"caracteres"}
Pour le reste et pour pouvoir te répondre pourquoi as-tu besoin de faire un traitement sur .focus, .blur, et .keyup ????
c'est juste pour appliquer plusieurs evenements sur un seul champs, apprendre c'est tout
Hors ligne
Alors non ce n'est pas la bonne méthode dans le contexte qu'est celui exposé plus haut. Maintenant si c'est pour apprendre, le contexte n'est pas idéal non plus car les problèmes de stopPropagation en jquery ne seront pas/peu perceptibles.
Pour ton undefined, je te laisse relire tout ce que j'ai pu écrire dans ce post, car visiblement tu es passé à côté de certaines choses..
++
Dernière modification par Jc (01-05-2012 09:00:21)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne