Générer une requete sql avec javascript

Description

Il vous peut être arrivé de vouloir envoyer des informations à partir d'un formulaire dont tous les champs de saisie sont optionnels. Et par la suite de vous afficher sur une autre page le résultat d'une requête dont les critères de recherche proviennent de la page précédente.
Vous devez avant tout vérifier la saisie correcte des données et ensuite générer la requête adéquate qui sera exécuter dans la page suivante.
C'est ce que j'ai essayé de faire et que vous pourrez tester sur l'adresse suivante: www.ibs.sn/annuaire/.
Le code javascript de saisie vérification de la saisie du formulaire et de génération de la requête sql est le suivant:

Source / Exemple :


<script language="javascript">
function EnregistrerFiche()
{
	var saisie=0;
	var requete;
	if (document.form1.Nom.value!='')
	{	
		saisie++;
		requete="Nom='"+document.form1.Nom.value+"'";
	}
	
	if (document.form1.Prenom.value!='')
	{
		if (saisie>0)
		{	
			saisie++;
			requete=requete + " AND Prenom='"+document.form1.Prenom.value+"'";
		}
		else
		{	
			saisie++;
			requete="Prenom='"+document.form1.Prenom.value+"'";
		}
	}
	
	if (document.form1.Profession.value!='')
	{
		if (saisie>0)
			{
				saisie++;
				requete=requete+ " AND Profession='"+document.form1.Profession.value+"'";
			}
		else
			{
				saisie++;
				requete="Profession='"+document.form1.Profession.value+"'";
			}
	}
	
	if (document.form1.AnneeEntree.value!='Choisir une Annee')
	{
		if (saisie>0)
			{
				saisie++;
				requete=requete+ " AND AnneeEntree='"+document.form1.AnneeEntree.value+"'";
			}
		else
			{
				saisie++;
				requete="AnneeEntree='"+document.form1.AnneeEntree.value+"'";
			}
	}
	
	if (document.form1.SecteurActivite.value!='--Chosir un secteur--')
	{
		if (saisie>0)
			{
				saisie++;
				requete=requete+ " AND SecteurActivite='"+document.form1.SecteurActivite.value+"'";
			}
		else
			{
				saisie++;
				requete="SecteurActivite='"+document.form1.SecteurActivite.value+"'";
			}
	}
	
	if (saisie>0)
	{
		document.form1.UneRequete.value="SELECT * FROM annuaireibs WHERE "+requete;
		document.form1.submit();
	}
	else
		alert("Champs non saisis"); 
}
</script>

Conclusion :


En cliquant sur le bouton "Envoyer" du Formulaire de saisie dont le code est le suivant.
<input name="Bouton" type="button" id="Envoyer" onClick="EnregistrerFiche();" value="Recherche">,
la fonction "EnregistrerFiche()" est appelée, cette fonction teste l'ensemble des champs de saisie et dispose du compteur "saisie" qui permet de savoir si un champ a été saisi oui non. Et au fur et à mesure que les champs sont marqués comme contenant des valeurs, une requête sql est générée et stockée dans le champs texte caché et nommé "UneRequete".
Le formulaire est ensuite envoyé avec la méthode POST.
La valeur contenue dans le paramétre "UneRequete" est récupérée par la page d'affichage des résultats, qui à son tour l'exécute.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.