Un essai avec JQuery

Eléphant du PHP | 214 Messages

15 déc. 2010, 03:00

Bonjour,

J'ai pratique un tuto des commentaires, je l'ai teste en local separe (des fichiers du commentaire seulement), mais quand je l'ai integre au site, il m'envoi au url:

index.html?name=&gender=1&email=&comment=&captcha=&Send=Envoyer

Sachant que j'utilise des pseudo frames ainsi qu'une reecriture URL.

Le code entre les balise head:
<script src="JS/jquery.js" type="text/javascript"></script>
<!-- envoyer des messages commentaires -->
<script type="text/javascript">
$(function()
	$("#formCom").submit(function() // recuperer la soumission du formulaire formCom, lorskon soumet on lance la fonction
	{
	alert("test");
	});      
 
});
</script>
</head>

<form method="POST" action="#" id="formCom">
<table width="600" border="1">
// mon formulaire se place ici 
</table>
</form>
Merci pour votre aide

devlop78
Invité n'ayant pas de compte PHPfrance

15 déc. 2010, 22:02

C'est quoi le problème ? Et je n'ai rien compris à tes phrases.

Eléphant du PHP | 214 Messages

17 déc. 2010, 04:00

C'est quoi le problème ? Et je n'ai rien compris à tes phrases.
Normalement je dois envoyer le formulaire et ca doit m'afficher une alerte "test", en revanche, il me renvois a l'URL avec toutes les variables du formulaire.

devlop78
Invité n'ayant pas de compte PHPfrance

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

Eléphant du PHP | 214 Messages

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

devlop78
Invité n'ayant pas de compte PHPfrance

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="?"

Eléphant du PHP | 214 Messages

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

devlop78
Invité n'ayant pas de compte PHPfrance

19 déc. 2010, 16:05

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

Eléphant du PHP | 214 Messages

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

ViPHP
AB
ViPHP | 5818 Messages

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="?"

devlop78
Invité n'ayant pas de compte PHPfrance

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()

devlop78
Invité n'ayant pas de compte PHPfrance

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

Eléphant du PHP | 214 Messages

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.

Eléphant du PHP | 214 Messages

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);
?>

devlop78
Invité n'ayant pas de compte PHPfrance

21 déc. 2010, 21:05

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

Regarde sur Goooooooogle "$.post jquery"