Vérification de champs php avec Javascript
Résolu/Fermé
Thorim
Messages postés
32
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
20 août 2007
-
8 août 2007 à 16:30
php? - 16 juin 2008 à 10:58
php? - 16 juin 2008 à 10:58
A voir également:
- Vérification de champs php avec Javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Vérification url - Guide
- Verification de l'etat du stockage systeme ps4 ✓ - Forum PS4
- Retour a la ligne php ✓ - Forum PHP
7 réponses
Pour completer le message de Posotaz:
function verif_error(){ var error_message = "Error : The following fields must be obligatorily filled: \n\n"; if (document.ModifyArtist.Artist_name.value == ""){ message = message + "The artist's name \n"; alert(error_message); return false; } if (document.ModifyArtist.Artist_locality.value == ""){ message = message + "The artist's locality \n"; alert(error_message); return false; } return true; }
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
8 août 2007 à 23:12
8 août 2007 à 23:12
Salut Thorim,
Si tu mets un return au niveau de ta fonction verif_error() ? (Elle est censée renvoyer un booléen et là elle ne renvoie "rien" - true par défaut, ce qui fait que ton formulaire est toujours validé comme bon -).
https://openweb.eu.org/articles/validation_formulaire/
Si tu mets un return au niveau de ta fonction verif_error() ? (Elle est censée renvoyer un booléen et là elle ne renvoie "rien" - true par défaut, ce qui fait que ton formulaire est toujours validé comme bon -).
https://openweb.eu.org/articles/validation_formulaire/
Thorim
Messages postés
32
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
20 août 2007
13
9 août 2007 à 11:38
9 août 2007 à 11:38
Salut tout le monde!
Tout d'abord merci pour vos deux messages!^^
J'ai rectifié mon code et ajouté les "return".
Maintenant, tout se passe bien pour le cas où un de mes champs est faux. Ma fonction verif_error() me donne bien un message d'erreur et l'utilisateur peut modifier sa saisie.
Par contre, es ce quil est possible de faire une requete sql en javascript?
Je m'explique.^^ J'aimerais également vérifier que l'artist saisie par l'utilisateur n'existe pas déjà dans la base de données. Je réussi à le faire dans la page "verificationModifyArtist.php" en PHP mais j'aimerai le faire si possible dans ma fonction javascript afin de regrouper l'ensemble des vérifications (Mieux structurer mon code!^^)
Merci de m'aider!^^
Nouveau code Javascript:
Code du formulaire PHP:
Thorim
Tout d'abord merci pour vos deux messages!^^
J'ai rectifié mon code et ajouté les "return".
Maintenant, tout se passe bien pour le cas où un de mes champs est faux. Ma fonction verif_error() me donne bien un message d'erreur et l'utilisateur peut modifier sa saisie.
Par contre, es ce quil est possible de faire une requete sql en javascript?
Je m'explique.^^ J'aimerais également vérifier que l'artist saisie par l'utilisateur n'existe pas déjà dans la base de données. Je réussi à le faire dans la page "verificationModifyArtist.php" en PHP mais j'aimerai le faire si possible dans ma fonction javascript afin de regrouper l'ensemble des vérifications (Mieux structurer mon code!^^)
Merci de m'aider!^^
Nouveau code Javascript:
function verif_error(){ var error_message = "Error : The following fields must be obligatorily filled: \n\n"; var message = error_message; if (document.ModifyArtist.Artist_name.value == ""){ message = message + "The artist's name \n"; alert(message); return false; } if (document.ModifyArtist.Artist_locality.value == ""){ message = message + "The artist's locality \n"; alert(message); return false; } return true; }
Code du formulaire PHP:
<form name="ModifyArtist" onSubmit="return verif_error()" action="validationModifyArtist.php" method="POST"> <input type="hidden" name="Artist_id" value="<?php echo($id_artist) ;?>"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>Name : </td> <td><input type="text" name="Artist_name" value="<?php echo $name_artist ;?>"></td> </tr> <tr align="center"> <td>About this artist : </td> <td><input type="text" name="Artist_about" value="<?php echo $about_artist ;?>"></td> </tr> <tr align="center"> <td>Inspiration : </td> <td><input type="text" name="Artist_inspiration" value="<?php echo $inspiration_artist ;?>"></td> </tr> <tr align="center"> <td>Locality : </td> <td> <select name="Artist_locality"> <?php $requete = "SELECT * FROM locality"; $resultat = mysql_query($requete); echo "<option value=$id_locality_artist>"?><?php echo $locality_artist ;?><?php "</option>"; /*Creation of the locality's list*/ while($row=mysql_fetch_array($resultat)) { if($row['id_locality'] != $id_locality_artist) echo "<option value=".$row['id_locality'].">".$row['name_locality']."</option>\n"; } ?> </select> </td> </tr> </table> <table border="0" align="center" cellspacing="2" cellpadding="2"> <br><br> <tr align="center"> <td colspan="2"><input type="submit" name="submit" value="Validation"></td> </tr> </table> </form>
Thorim
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui c'et possible de faire une req SQL par Javascript/
Vois par Ajax, c a d
l'évenement va lance r une requette MakeRequest, qui va appeler un script PHP en lui pasant un ou plusieurs parametres. Ce script fera la req SQL et rendra la rep à Ajax;
La fonction traitement de la reponse Ajax te permettra d'écrire le résultat dans la page HTML
Tout ceci sans rechargement de page, en utilisant les < div id="....."> </div>
Un exemple de script Ajax/javascript que tu mets dans le head de ta page HTML:
Dans ta page HTML sur l'évenement déclencheur, une liste select tu mets:
< select name='......' id="liste1" onChange=" makeRequest('repPhpAjax.php','liste1','id_reponse');">
</code>
ou tu veux la réponse tu mets un DIV:
<div id="id_reponse" > </div>
ou alors tu mets une boite alert(message); dans la fonction TratementReponse
Vois par Ajax, c a d
l'évenement va lance r une requette MakeRequest, qui va appeler un script PHP en lui pasant un ou plusieurs parametres. Ce script fera la req SQL et rendra la rep à Ajax;
La fonction traitement de la reponse Ajax te permettra d'écrire le résultat dans la page HTML
Tout ceci sans rechargement de page, en utilisant les < div id="....."> </div>
Un exemple de script Ajax/javascript que tu mets dans le head de ta page HTML:
<script language="Javascript"type="text/JavaScript"> // Requette AJAX function makeRequest(url,id_lire,id_ecrire){ var http_request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse // lancement de la requete http_request.open('POST', url, true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); obj=document.getElementById(id_lire); data="val_sel="+obj.value; http_request.send(data); } function traitementReponse(http_request,id_ecrire) { var affich=""; if (http_request.readyState == 4) { if (http_request.status == 200) { // cas avec reponse de PHP en mode texte: //chargement des elements reçus dans la liste var affich_list=http_request.responseText; //alert(http_request.responseText); obj = document.getElementById(id_ecrire); obj.innerHTML = affich_list; } else { alert('Un problème est survenu avec la requête.'); } } } </script> et le fichier repPhpAjax.php: <code><?php // script PHP interrogation Base de donnees pour reponse a la requete AJAX // recup valeur postee par Ajax $valeur_postee=$_POST['val_sel']; // Connexion a la base de donnees //Requette SQL, traitement etc.. // construction de la reponse . $aff=""; $aff.="Message réponse"; // envoi reponse Php a Ajax echo $aff; ?>
Dans ta page HTML sur l'évenement déclencheur, une liste select tu mets:
< select name='......' id="liste1" onChange=" makeRequest('repPhpAjax.php','liste1','id_reponse');">
</code>
ou tu veux la réponse tu mets un DIV:
<div id="id_reponse" > </div>
ou alors tu mets une boite alert(message); dans la fonction TratementReponse
Thorim
Messages postés
32
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
20 août 2007
13
10 août 2007 à 10:31
10 août 2007 à 10:31
Salut Alain42!
Merci pour ta réponse!^^
Par contre, ca ma l'air un peu trop compliqué pour moi!^^ Je ne connais pas du tout l'Ajax et je ne pense pas avoir le temps d'apprendre avant la fin de mon stage...
Il n'y a pas une façons plus simple de faire ce que je veux?
En tout cas merci pour ton aide!^^
Thorim
Merci pour ta réponse!^^
Par contre, ca ma l'air un peu trop compliqué pour moi!^^ Je ne connais pas du tout l'Ajax et je ne pense pas avoir le temps d'apprendre avant la fin de mon stage...
Il n'y a pas une façons plus simple de faire ce que je veux?
En tout cas merci pour ton aide!^^
Thorim
Thorim
Messages postés
32
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
20 août 2007
13
13 août 2007 à 12:37
13 août 2007 à 12:37
Bonjour tout le monde!
En fait j'ai trouvé une façons de faire ce que je veux sans faire les requetes en javascript!
C'est peu être un peu barbare comme méthode mais ça à le mérite de marcher!^^
En fait je garde la fonction javascript tels quelle pour qu'elle vérifie si tout les champs obligatoires sont bien saisies et ensuite mon formulaire rappelle la même page php avec les nouvelles informations en méthodes POST.
Je récupère les informations et j'effectue les requetes en PHP dans la même page puis affiche les erreurs si il y en a avec alert().
Je n'ai trouvé que cette façons pour pouvoir gérer l'ensemble de mes tests dans la même page!^^
En tout cas merci Alain42 pour ta solution mais je n'ai pas le temps de regarder l'Ajax!^^
Ca sera pour une prochaine fois!
Thorim
En fait j'ai trouvé une façons de faire ce que je veux sans faire les requetes en javascript!
C'est peu être un peu barbare comme méthode mais ça à le mérite de marcher!^^
En fait je garde la fonction javascript tels quelle pour qu'elle vérifie si tout les champs obligatoires sont bien saisies et ensuite mon formulaire rappelle la même page php avec les nouvelles informations en méthodes POST.
Je récupère les informations et j'effectue les requetes en PHP dans la même page puis affiche les erreurs si il y en a avec alert().
Je n'ai trouvé que cette façons pour pouvoir gérer l'ensemble de mes tests dans la même page!^^
En tout cas merci Alain42 pour ta solution mais je n'ai pas le temps de regarder l'Ajax!^^
Ca sera pour une prochaine fois!
Thorim