Page 1 sur 1
Verifier le champ d'un formulaire ds bdd sans envoi
Posté : 10 juil. 2005, 21:40
par pierre_jean
Bonsoir,
J'ai un formulaire a remplir avec dedans entre autre une zone de texte a remplir avec un lien ou bouton a coté qui demande de vérifier si ce produit a déjà été saisit dans la bdd.

Comment faire ? j'arrive a le faire dans le même formulaire (je valide le formulaire il me fait une verification apres l'envoi). Mais ce que je voudrais faire c'est vérifier la présence ou non de ce champ dans ma bdd
avant d'envoyer mon formulaire et non pas à la validation du formulaire.
merci d'avance
Cdlt,
Pierre J.
Posté : 10 juil. 2005, 21:55
par ouckileou
pour vérifier une info dans la base de données il va forcément falloir que tu exécutes un script PHP, tu ne pourras pas le faire en Javascript
en fait, ton bouton "vérifier", va lui aussi soumettre le formulaire, sauf que tu peux dans la page de réception, détecter que c'est ce bouton qui a été cliqué (et non pas l'autre "Envoyer") et donc faire ta vérification.
Ensuite, tu peux rederiier sur ton formulaire, avec les infos qui étaient saisies et le résultat de ta vérification
Posté : 10 juil. 2005, 22:30
par pierre_jean
je te remercie mais c'est justement ce que j'arrive a faire et que je ne veux
pas faire
je voudrais envoyer le resultat de mon champ a verifier sur une autre page .php en "popup" (_blank) qui vérifira mon champ. Je ne veux pas valider mon formulaire.
Posté : 10 juil. 2005, 22:41
par Cyrano
Ce qu'il faut faire, c'est en début de fichier commencer par vérifier si le formulaire a été envoyé. Si oui, dans un premier temps tu vérifie ton champ dans la base de données : selon le résultat obtenu, soit tu ré-affiches le formulaire avec les informations saisies et un message, soit c'est ok et tu valides : le tout en une seule opération. Est-ce que cette explication n'est pas trop confuse ?
Posté : 10 juil. 2005, 22:43
par ouckileou
ben ça c'est en soumettant le formulaire, et il ne veut pas

Posté : 10 juil. 2005, 22:52
par Cyrano
C'est pas possible de faire autrement, ou alors peut-être avec du JavaScript et XMLHTTPRequest, mais là, je sais pas comment ça fonctionne.
Posté : 10 juil. 2005, 22:55
par ouckileou
en ouvrant un popup, avec la page de vérification, en passant en paramètre de l'url le contenu à vérifier
au moins le formulaire n'est pas envoyé
Posté : 10 juil. 2005, 22:57
par pierre_jean
arf !
ouckileou a raison
comment faire sans valider le formulaire ?

Posté : 10 juil. 2005, 23:05
par ouckileou
avec du Javascript
window.open()
la syntaxe est expliquée ici :
http://www.commentcamarche.net/javascript/jswindow.php3
Posté : 10 juil. 2005, 23:40
par pierre_jean
j arrive pas a combiner le open.windows pour passer le parametre de mon champ_a_verifier (zone de texte de mon formulaire) a ma page .php
j'arrive pas a exploiter "document.formulaire.mon_champ_a_verifier.value"
comment faire ?
Posté : 10 juil. 2005, 23:49
par ouckileou
passe par une fonction
Code : Tout sélectionner
function bidon() {
// tu récupère la valeur dans une variable (ou passée en paramètre)
// tu crées une url avec cette valeur
// tu ouvres ton popup avec l'url
}
ce sera plus facilement manipulable

Posté : 11 juil. 2005, 00:25
par pierre_jean
ouckileou, en suivant ton conseil :
ma page avec mon formulaire j'ai un champs a verifier (tester présence dans bdd par exemple) :
Code : Tout sélectionner
[...]
<input id="champ_a_verifier" name="champ_a_verifier" type="text">
<input id="verifier" value="VERIFIER" onclick="verif('champ_a_verifier');" />
[...]
la fonction verif :
Code : Tout sélectionner
function verif(id_du_txt_a_verif) {
var txt_a_verif = document.getElementById(id_du_txt_a_verif);
var url;
url = 'page_verification.php?recup='+txt_a_verif.value;
window.open(url,"verification du champ", "height=400,width=200,top=200,left=200");
}
la page de vérification :
Code : Tout sélectionner
<?php
echo 'le champ que je recupere : ';
echo $recup;
?>
<center><form><input type="button" value="Fermer cette fenêtre" onClick="window.close()"></form></center>
[..] Traitement avec le champ recupérer [...]
merci pour tout
Cdlt,
Pierre J.