8731 sujets

Développement web côté serveur, CMS

bonjour a tous,

voila j'ai développé un formulaire qui se trouve dans un tabs(4eme onglet de mon menu)jquery.

A la fin de ce formulaire, lorsque l'on clique sur envoyer, j'aimerai afficher un message de validation ou d'erreurs à l'utilisateur selon s'il a bien rempli le formulaire ou pas.
Ce message s'affiche juste en dessous du bouton submit.

Mon problème est que lorsque je clique sur envoyer, il actualise ma page et m'affiche par défaut le 1er onglet de mon menu et par conséquent on perd le fil de la navigation ainsi que le formulaire et le message qui l'accompagne.

j'ai besoin de votre aide pr résoudre ce pb!

je pense qu'il faudrait peut être un test en bas de page...mais je me trompe peut être et je ne suis pas assez calé en php

Mes tests de vérifications sur mon formulaire sont fait en php car par la suite, je stocke mes infos ds une base PHP/MySQL.

Est-ce pertinent d'utiliser à la fois du JS(jquery) et le PHP ou cela engendre t-il des conflits?

merci par avance pour votre aide
Salut Smiley cligne

Sans code ni lien, impossible de t'aider.

Coupler du Javascript avec du Php c'est bien =), mais dans un premier temps fait tout en pur html/php, puis ensuite tu viendras rajouter ta couche de javascript.

Ca évite ce genre de problème pendant la conception Smiley cligne
Modifié par Super_baloo8 (12 Aug 2010 - 11:48)
Hello,

Si ta validation se fait coté serveur (PHP), alors il te suffit lors du chargement de la page de vérifier s'il y a des erreurs (vérifie l'existence de ton message d'erreur). S'il y a bien des erreurs, tu peux changer le tab actif grace aux méthodes des tabs de jQuery UI pour mettre comme actif le tab qui comporte ton formulaire.
Si tu bosses avec jquery ui, une astuce est d'ajouter "#tab_X" à la fin de l'url (remplacer X par le numéro d'onglet). Ça permet d'ouvrir directement l'onglet désiré.
en fait qu'il y est des erreurs ou pas, je ne veux pas changer d'onglet quoi qu'il arrive lorqu'on valide le form sinon l'internaute se perd!!
Tu peux t'orienter du coté d'ajax avec jquery afin d'envoyer les données de ton formulaire sans rafraichir la page. L'utilisation est très simple. En combinant avec un peu de js, tu n'auras aucun mal à réaliser ce que tu souhaites (message "ok" ou "erreur")
merci Messieurs, grace a vos réponses j'ai enfin trouvé la solution!!

j'ai effectivement fait un test sur l'envoi du formulaire. Quand l'user clique sur submit, je selectionne mon tabs en question avec l'option select .

encore merci et bonne journée
Pour ceux que cela intéresserait, la solution est simple, si on ne veut pas qu'un lien ou qu'un formulaire rafraîchisse la page il faut ajouter return false; à la fin de la fonction qui est sur le onclick, onsubmit...

ex :

document.getElementById('monElementLien').onclick = function(){
alert('test !');
return false;
}


Dans le cas d'un contrôle de formulaire, on applique le return false lorsqu'une erreur de saisie a été détectée.

exemple de contrôle très basique :

document.getElementById('monElementFormulaire').onsubmit = function(){
if( this.getElementById('nomPersonne').value == '' ) {
alert('Attention ! Le nom est obligatoire !');
return false;
}
}


Je ne sais pas si ma syntaxe JS est excellente (je ne fais plus que du jQuery depuis un bon bout de temps), mais le principe est là Smiley cligne

Ça c'était pour le code. Pour ce qui est de la méthode il faut en effet valider séparément en PHP et en JS, et non tout mélanger avec de l'Ajax (sauf contrôle vraiment avancé mais ce n'est pas nécessaire la plupart du temps). Il faut donc un contrôle qui fonctionne JS désactivé, avec le rafraîchissement inévitable de la page, et un contrôle JS (souvent plus simple à mettre en place) qui intervient avant la soumission du formulaire.

Si tu n'es pas techniquement capable de faire un contrôle PHP complet avec un vrai rapport d'erreur (parfois ce n'est pas vraiment nécessaire, pour une interface d'admin privée par exemple), le minimum est de s'assurer de l'intégrité des données soumises par le formulaire (en PHP) en l'absence de contrôle JS, et de par exemple ne rien enregistrer du tout si des champs sont vides ou appliquer des valeurs par défauts si certains champs le permettent. Bien sûr cela est valable s'il y a bien un contrôle JS au préalable, un formulaire qui ne contrôle rien et n'enregistre rien si on se trompe serait une catastrophe pour l'utilisateur, même pour un formulaire de back-office.
Modifié par Mattew (21 Sep 2010 - 12:43)