FORMULAIRE: si champs vide pas de validation

Fermé
moi - 2 oct. 2004 à 11:04
sheva07 Messages postés 1 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 16 avril 2008 - 16 avril 2008 à 16:36
Bonjour,

Je code en asp avec une base sql server
Voici mon probleme, j'ai plusieurs champs dans mon formulaire. Un seul champs n'est pas autorisé à accepter les valeurs NULL dans la base de données, c'est le champs "nom". Donc pour éviter l'affichage d'une page d'erreur j'ai fais un controle javascript.

Jusqu'à la tout va bien! Le problème est que tous les autres champs devraient permettrent la validation du formulaire meme s'ils sont vide. Pourtant c'est pas le cas, si un champs n'est pas rempli il me renvoi l'erreur suivante : erreur vers"," qui pointe sur ligne qui permet d'exécuter ma requête.

Voici le code de mon formulaire:

<body>
<FORM METHOD="post" NAME="formulaire1" ACTION="creer.asp" OnSubmit="return champsok()">
 
 	 <p align="center"> <strong>Nom/Prénom :<br></strong> 
 	 <INPUT TYPE="text"  NAME="nom" >*<br>
  
	<p align="center"><strong>Adresse de messagerie :<br></strong> 
  	                       <input type="text"  name="messagerie">
    <em> @magasin.mail</em> 
  	
	<p align="center"> <strong>Téléphone local:</strong><BR>
    <INPUT name="tel_local">
	
	<p align="center"> <strong>Téléphone:</strong> <BR>
    <INPUT name="tel"> 
    
	<p align="center"> <strong>Mobile:</strong> <BR>
    <INPUT name="mobile"><br><br>
	
	 <p align="center"> <strong>choisir un magasin d'affectation</strong> <BR><BR><BR>
    <select name="magasin">
	
<%	Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from magasin ORDER BY mag_nom"
rs.Open sql, objConnexion 

if rs.eof = false then
	rs.MoveFirst
	DO WHILE not rs.eof%>
		<option value="<% =rs("mag_id") %>"><% =rs("mag_nom") %></option>
	<%rs.MoveNext
	loop
End if%>
    </select>
	
	
  <p align="center"> <br><br><br>
    <input type="submit" value="CREER" name="valider">
       
 	<input type="button" value="FERMER" onclick="window.close()">
	<br><br> <em>Les champs suivis d'une  *    sont obligatoires.</em> 	
</FORM>
</body>



et voici la page qui permet l'enregistrement du formulaire:

... connexion base...
Le_nom=Request.Form("nom")
La_messagerie=Request.Form("messagerie")
Tel_local = Request.Form("tel_local")
Le_Tel = Request.Form("tel")
Le_mobile = Request.Form("mobile")
Un_id_mag=Request.Form("magasin")
'Response.Write("la variable nom est égale à : " & Un_id_mag & "<br>")

SQL=" Declare @contact_id int " & _
" INSERT Into contact(contact_nom, messagerie, tel_local, tel_fixe, tel_mobile) " & _
"VALUES (' "&Le_nom&" ', ' "&La_messagerie&" ', ' "&Tel_local&" ', ' "&Le_Tel&" ', "&Le_mobile&") " & _
"Select @contact_id= @@Identity " & _
"Insert Into contact_mag (contact_id,mag_id) " & _
"VALUES (@contact_id," & Un_id_mag & ")"

objConnexion.Execute(SQL)
set rs=nothing
objConnexion.close
Set objConnexion=nothing
Response.Redirect"close.asp"


Est ce que quelqu'un pourrait m'aider car je n'ai aucune idée d'où cette erreur peut provenir.

4 réponses

Est ce que par hasard ça ne serait pas lié à ton code SQL:
Je crois qu'il faut être rigoureux dans les espaces notamment : A ta place j'enlèverais les espaces dans le VALUES entre chaque ' et chaque". En plus, il te manque un encadrement de ' pour Le_mobile.
Par contre je comprend pas la première ligne Declare ..., ça correspond à quoi?

SQL=" Declare @contact_id int " & _
" INSERT Into contact(contact_nom, messagerie, tel_local, tel_fixe, tel_mobile) " & _
"VALUES ('" & Le_nom & "', '" & La_messagerie & "', '" & Tel_local & "', '" & Le_Tel & "', '" & Le_mobile & "') " & _
"Select @contact_id= @@Identity " & _
"Insert Into contact_mag (contact_id,mag_id) " & _
"VALUES (@contact_id," & Un_id_mag & ")"
0
J'ai bien enlevé les espaces, mais ça ne change rien!! Quand aux côtes en moins pour le mobile c'est tout à fait normal car je veux uniquement que se soit des chiffres qui soient rentrés dans cette partie du formulaire et non une chaîne de caractère.

Enfin pour le declare je ne pourrai pas te dire j'ai passé 5 jours à chercher comment récupérer des id pour une table de relation et parmi toutes les solutions qui m'ont été proposé seule celle la a marché.

mais je vais essayer de voir
0
bonjour
jai un probléme depuis peu voila je veu me crée un blog mai quand je veu remplire le formulair tou les champs son vide !!
pouvez vous m'aidé svp !!!
0
ajoute derrier ta requete l'instruction or die (my_sql(error))..ca va surement te dire qu'il manque un champs dans ta base de données...
0
sheva07 Messages postés 1 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 16 avril 2008
16 avril 2008 à 16:36
Bonjour tout le monde j'ai réaliser un formulaire de saisie sur Excel, lorsque je valide avec mon bouton OK ma saisie, celles si reste dans les champs saisissables. Je cherche donc la fonction sous vba pour vider les champs de saisie une fois qu'ils sont validés.

Merci de votre aide!!
0