Un essai avec JQuery

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Un essai avec JQuery

Re: Un essai avec JQuery

par Fredy07 » 23 déc. 2010, 11:23

Là je dirais, qu'il y a deux écoles, si l'on veut. Soit on contrôle en JS + en Php, ce qui réduit considérablement les charges serveurs, mais augmente les charges de développement ; soit on envoit tout à Php et on contrôle tout par php. Dans tous les cas, on utilise Ajax pour envoyer les données à Php...
@Fredy07 ... le script php devrait être autonome et pouvoir se passer de javascript. Si javascript est désactivé et que tu te sert de javascript pour afficher les messages d'erreurs, le visiteur ne verra jamais rien. On fait normalement tout le script complet en php (avec renvoi des messages d'erreurs) et ensuite pour le confort du visiteur et diminuer un peu la charge du serveur, on double par un contrôle javascript.
Je voudrais faire le controle des erreurs en php et juste l'affichage en JS, par exemple:
if($nom == '') {
$erreur = 'Veuillez rentrere votre nom';
}

// ainsi de suite ...

if (IsSet($erreur)){

// c'est la ou je veux mettre du JS, afin d'afficher les messages d'erreur en JQuery, par exemple en fadeIn

}
else
{

// ici je vais mettre une slide (up/down), afin d'inserer le message, et l'afficher

}

Re: Un essai avec JQuery

par AB » 22 déc. 2010, 19:18

Là je dirais, qu'il y a deux écoles, si l'on veut. Soit on contrôle en JS + en Php, ce qui réduit considérablement les charges serveurs, mais augmente les charges de développement ; soit on envoit tout à Php et on contrôle tout par php. Dans tous les cas, on utilise Ajax pour envoyer les données à Php...
Pas clair... on peut bien tout faire en php sans utiliser ajax :-k

...concernant le action= "#", le dièse indique bien au navigateur que c'est la même page et ce caractère est reconnu comme tel par tous les navigateurs. D'ailleurs en rajoutant des caractères derrière on obtient rien d'autre qu'une ancre nommée :wink:
Normalement le ? ne se justifie que s'il y a des variables à interpréter derrière et le navigateur va chercher à l'interpréter comme tel puis finalement renvoyer la même page par défaut puisqu'il n'y a rien devant le ? et sans variable puisqu'il n'y en a pas.
En utilisant dièse on indique donc la même page; en utilisant ? sans indiquer d'adresse devant c'est le navigateur qui va trouver l'adresse par défaut... c'est toujours mieux de définir les variables soi-même :wink:

@Fredy07 ... le script php devrait être autonome et pouvoir se passer de javascript. Si javascript est désactivé et que tu te sert de javascript pour afficher les messages d'erreurs, le visiteur ne verra jamais rien. On fait normalement tout le script complet en php (avec renvoi des messages d'erreurs) et ensuite pour le confort du visiteur et diminuer un peu la charge du serveur, on double par un contrôle javascript.

Re: Un essai avec JQuery

par Fredy07 » 22 déc. 2010, 03:57

$.post() est une méthode, pas une variable. Donc pas $.post = mais $.post (...);

Regarde sur Goooooooogle "$.post jquery"
oui faute de frappe, normalement ca doit me retourner le pseudo que j'ai saisis, mais il me retourne undefined.

Re: Un essai avec JQuery

par devlop78 » 21 déc. 2010, 21:05

$.post() est une méthode, pas une variable. Donc pas $.post = mais $.post (...);

Regarde sur Goooooooogle "$.post jquery"

Re: Un essai avec JQuery

par Fredy07 » 21 déc. 2010, 07:17

J'ai teste ce code, mais ca ne retourne rien, de plus le console d'erreur n'affiche aussi rien:
<head>
<script src="jquery.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
$(document).ready(function(){
	$("#Send").click(function() // quand on click sur Send on demarre notre fonction
	{
				$("#Send").hide();
				pseudo = $(this).find("input[name=pseudo]").val();
				$.post = ("testload2.php", 
				{pseudo: pseudo},
				function(data)
				{
					alert(data);
				});	
				
return false;
		});
				});
</script>
</head>
<body>
<span name="displayhere" id="showerrors"></span>
<form method="POST" action="#">
 		<input type="text" name="pseudo" id="pseudo" value="" class="Input01" />
     <input type="submit" name="Send" value="envoyer" class="Input01" id="Send" />
     </div> 
</form>
testload2.php:
<?php
print_r($_POST);
?>

Re: Un essai avec JQuery

par Fredy07 » 21 déc. 2010, 04:22

Là je dirais, qu'il y a deux écoles, si l'on veut. Soit on contrôle en JS + en Php, ce qui réduit considérablement les charges serveurs, mais augmente les charges de développement ; soit on envoit tout à Php et on contrôle tout par php. Dans tous les cas, on utilise Ajax pour envoyer les données à Php, Php contrôle et renvoie, au choix, soit une valeur texte (que l'on interpretra par exemple si l'on le précède de certains caractères comme un message de succès, et comme d'autres, d'une message d'erreur), ou d'un JSON (le premier élément était un booléan : soit erreur, soit ok, le deuxième, le message), ou XML dans le même style. Là, tout est discutable.
Alors la je me suis bien trouble, en bref, j'aimerais controler les champs avec du PHP et afficher le resultat (erreur ou succes) en animation fadeIn par exemple.

Re: Un essai avec JQuery

par devlop78 » 21 déc. 2010, 03:54

Là je dirais, qu'il y a deux écoles, si l'on veut. Soit on contrôle en JS + en Php, ce qui réduit considérablement les charges serveurs, mais augmente les charges de développement ; soit on envoit tout à Php et on contrôle tout par php. Dans tous les cas, on utilise Ajax pour envoyer les données à Php, Php contrôle et renvoie, au choix, soit une valeur texte (que l'on interpretra par exemple si l'on le précède de certains caractères comme un message de succès, et comme d'autres, d'une message d'erreur), ou d'un JSON (le premier élément était un booléan : soit erreur, soit ok, le deuxième, le message), ou XML dans le même style. Là, tout est discutable.
jQuery est bien lancé ? Que dit la console d'erreur de Firefox (CTRL+MAJ+J)
J'ai refais le code, apparement c'est le cache navigateur qui me renvoyait toujours la meme erreur, j'ai redemarre le PC, et ca marche, merci devlop78.

Je voudrais valider le formulaire avec du PHP & JQuery:
$("#envoyer").click(function()
{
if ($("#nom").val() == "" ) { // si le nom est vide
 
$("#nom").css("border-color", "red"); // mettre les bordures en rouge
$("#showerrors").fadeIn().html("<b>Veuillez entrer votre nom!</b><br>"); // afficher le message en fadeIn
}
});
if($nom == '') {
echo 'Veuillez entrer votre nom!';
}
Comment faire pour valider les champs en PHP et transmettre cette validation vers JQuery, par exemple, dans ma partie de code, je veux en meme temps mettre les bordures en rouge, et afficher le message en fadeIn.

Merci

Re: Un essai avec JQuery

par devlop78 » 21 déc. 2010, 03:51

pourtant, comme tu le vois, ça devrait marcher. Essai de remplacer action="#" par action="?"
...juste au passage, entre les deux syntaxes, action="#" est plus propre que action="?"
J'avoue, c'est mon tord, ne pas savoir la réaction du navigateur avec action="#". Perso, j'utilise souvent Ajax avec un support non javascript, donc avec de vraies pages. Et lorsque c'est full javascript, je mets juste <form></form>, et encore, je me suis plusieurs fois posé la question de savoir si c'était vraiment utile avec $("#mon_champ").val()

Re: Un essai avec JQuery

par AB » 20 déc. 2010, 20:59

pourtant, comme tu le vois, ça devrait marcher. Essai de remplacer action="#" par action="?"
...juste au passage, entre les deux syntaxes, action="#" est plus propre que action="?"

Re: Un essai avec JQuery

par Fredy07 » 20 déc. 2010, 03:32

jQuery est bien lancé ? Que dit la console d'erreur de Firefox (CTRL+MAJ+J)
J'ai refais le code, apparement c'est le cache navigateur qui me renvoyait toujours la meme erreur, j'ai redemarre le PC, et ca marche, merci devlop78.

Je voudrais valider le formulaire avec du PHP & JQuery:
$("#envoyer").click(function()
{
if ($("#nom").val() == "" ) { // si le nom est vide
 
$("#nom").css("border-color", "red"); // mettre les bordures en rouge
$("#showerrors").fadeIn().html("<b>Veuillez entrer votre nom!</b><br>"); // afficher le message en fadeIn
}
});
if($nom == '') {
echo 'Veuillez entrer votre nom!';
}
Comment faire pour valider les champs en PHP et transmettre cette validation vers JQuery, par exemple, dans ma partie de code, je veux en meme temps mettre les bordures en rouge, et afficher le message en fadeIn.

Merci

Re: Un essai avec JQuery

par devlop78 » 19 déc. 2010, 16:05

jQuery est bien lancé ? Que dit la console d'erreur de Firefox (CTRL+MAJ+J)

Re: Un essai avec JQuery

par Fredy07 » 19 déc. 2010, 04:21

For example, consider the HTML:

Code : Tout sélectionner

<form id="target" action="destination.html"> <input type="text" value="Hello there" /> <input type="submit" value="Go" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the form:

Code : Tout sélectionner

$('#target').submit(function() { alert('Handler for .submit() called.'); return false; });
pourtant, comme tu le vois, ça devrait marcher. Essai de remplacer action="#" par action="?"
Merci devlop78, mais ca marche toujours pas

Re: Un essai avec JQuery

par devlop78 » 18 déc. 2010, 14:00

For example, consider the HTML:

Code : Tout sélectionner

<form id="target" action="destination.html"> <input type="text" value="Hello there" /> <input type="submit" value="Go" /> </form> <div id="other"> Trigger the handler </div>
The event handler can be bound to the form:

Code : Tout sélectionner

$('#target').submit(function() { alert('Handler for .submit() called.'); return false; });
pourtant, comme tu le vois, ça devrait marcher. Essai de remplacer action="#" par action="?"

Re: Un essai avec JQuery

par Fredy07 » 18 déc. 2010, 03:22

Oui. Ton clavier possède des touches pour mettre des accents. Tu peux les utiliser :p
Malheureusement non, je dispose un clavier QWERTY.
Ensuite, s'il ne lance de toutes façons pas l'alert(), c'est un problème de JS. On peut dire plein de cochenneries sur IE, avec lui, tu l'aurais tout de suite vu.
Je l'ai teste sous FF, IE, Opera et Safari.
Je vois déjà que ta syntaxe n'est pas cohérente, et plus, il manque une accolade.
A toi de voir laquelle est la bonne ;p
<script type="text/javascript">
$(function(){
	$("#formCom").submit(function() // recuperer la soumission du formulaire formCom, lorskon soumet on lance la fonction
	{
	alert("test");
	return false;
	});
	//return false;
});
</script>
et ca marche toujours pas

Re: Un essai avec JQuery

par devlop78 » 17 déc. 2010, 22:12

Oui. Ton clavier possède des touches pour mettre des accents. Tu peux les utiliser :p

Concernant ton problème, déjà il faudrait annuler l'envoi du formulaire. Donc à la fin, mettre return (false);, par exemple

Ensuite, s'il ne lance de toutes façons pas l'alert(), c'est un problème de JS. On peut dire plein de cochenneries sur IE, avec lui, tu l'aurais tout de suite vu. Bref.

Je vois déjà que ta syntaxe n'est pas cohérente, et plus, il manque une accolade.
$(function()
$
A toi de voir laquelle est la bonne ;p