IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] configurer requete ajax


Sujet :

AJAX

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut [AJAX] configurer requete ajax
    Bonjour,

    J'ai réalisé un formulaire d'édition.
    dans ce formulaire j'ai un nom de fichier et un statut.
    je ne peux pas changer le nom du fichier mais je peux changer le statut.

    en effet, si le statut varie alors dans mon formulaire l'upload sera obligatoire
    (donc je devrais vérifier si l'upload a été faite avant l'envoi des données grâce a un code javascript existant)
    dans le cas contraire l'upload est facultative et il n'y aura donc pas de vérification préalable a l'envoi.

    mon soucis est de savoir si je peux configurer ma requete existante pour renvoyer vers un js qui pourra vérifier tout cela.

    voila le bout du formulaire concerné par la requete ajax:
    form_base.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <form name="insertion" action="modification3.php" method="post"
    	onsubmit="if (check());  else return false;"
    	enctype="multipart/form-data" accept-charset="UTF-8"><input
    	type="hidden" name="id_fiche" value="<?php echo($id) ;?>"
    	class="niceform">
     
    <fieldset><legend>Informations générales sur le corpus</legend>
    <table>
     
     
    	<tr>
    		<td><label>Statut du corpus:</label></td>
    		<td><?
    		$Statut_corpus = isset($result->Statut_corpus) ? $result->Statut_corpus : '';
    		?> <select name="Statut_corpus" id="StatutCorpus">
    			<option value=""
    			<?php if($Statut_corpus == "") { echo ' selected'; } ?>>---Modifier---</option>
    			<option value="Transcrit"
    			<?php if($Statut_corpus == "Transcrit") { echo ' selected'; } ?>>Transcrit</option>
    			<option value="Verifie_Non_Anonymise"
    			<?php if($Statut_corpus == "Verifie_Non_Anonymise") { echo ' selected'; } ?>>Verifié
    			- Non Anonymisé</option>
    			<option value="Verifie_Anonymise"
    			<?php if($Statut_corpus == "Verifie_Anonymise") { echo ' selected'; } ?>>Vérifié
    			- Anonymisé</option>
    		</select></td>
    	</tr>
     
     
    	<tr>
    		<td><label>Nom du dossier contenant le corpus informatisé
    		(identifiant):</label></td>
    		<td><b><?php //echo($result->NomFichierSource) ;?></b><input
    			type="text" name="NomFichierSource" id="NomFichierSource"
    			value="<?php echo($result->NomFichierSource) ;?>"
    			onblur="req_NomFichierSource();"> <span id="NomFichierSource_check"></span></td>
    	</tr>
    </table>
    </fieldset>
     
    <fieldset><legend>Upload</legend> <!-- UPLOAD simple -->
    <table>
    	<tr>
    		<td><label for="fichierSON">Joindre Fichier Son</label></td>
    		<td><input name="fichierSON" type="file"
    			onChange="verif_extensionSON(this.value);"></td>
     
    	</tr>
     
     
    	<tr>
    		<td><label for="fichierTRS">Joindre Fichier Transcription</label></td>
    		<td><input name="fichierTRS" type="file"
    			onChange="verif_extensionTRS(this.value);"></td>
     
    	</tr>
    </table>
    </fieldset>
     
    </form>

    voila mon code ajax :
    verif_Dispo.js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    var bNomFichierSource = false;
    function req_NomFichierSource(NomFichierSource) {
     
    	//XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
    	if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
    	else var XhrObj = new XMLHttpRequest(); //Mozilla
     
    	//content = document.getElementById("NomFichierSource_check"); 	//zone d'affichage
    	var content = document.getElementById("NomFichierSource_check"); 	//zone d'affichage
    	var srcFile = document.getElementById("NomFichierSource");
    	var statut = document.getElementById("StatutCorpus");
     
     
     
     
    	XhrObj.open("POST", "../verif_modif_js/verif_StatutCorpus.php");
    	//XhrObj.open("POST", "verif_NomFichierSource.php", false);
    	//Ok pour la page cible
    	XhrObj.onreadystatechange = function()
    	{
    		if (XhrObj.readyState == 4 && XhrObj.status == 200) {
    			if (XhrObj.responseText == 'OK') {
    				content.innerHTML='<img src="../images/accepter.png" alt=""/>Upload obligatoire';
    				bNomFichierSource = true; // ok nouveau pseudo
     
    			} else {
    				content.innerHTML='<img src="../images/refuser.png" alt=""/>Upload facultatif';
    				bNomFichierSource = false; // erreur pseudo déjà existant
    			}
    		}
    	}
     
    	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	//XhrObj.send('p='+encodeURIComponent(NomFichierSource));
    	XhrObj.send('p='+encodeURIComponent(srcFile.value)+'&s='+encodeURIComponent(statut.value));
     
     
     
     
    }
    voici le code que je voudrai associer a ma requete ajax qui va vérifier l'extension et l'existence des chemin dans l'upload.
    verif_extension.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    function recup_extension(fichier) // fonction de récupération extension fichier
       {
             if (fichier!="")// si le champ fihier n'est pas vide
             {
                nom_fichier=fichier;// on récupere le chemin complet du fichier
                nbchar = nom_fichier.length;// on compte le nombre de caractere que compose ce chemin
                extension = nom_fichier.substring(nbchar-4,nbchar); // on récupere les 4 derniers caracteres
                extension=extension.toLowerCase(); //on uniforme les caracteres en minuscules au cas ou cela aurait été écris en majuscule...
                return extension; // on renvoi l'extension vers la fonction appelante
             }
     
       }
     
    //verification extension du fichier SON avant upload
    function verif_extensionSON(fichier)// fonction vérification de l'extension aprés avoir choisi le fichier
       {
     
       ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
                if(ext==".wav"||ext==".mp3"||ext==".wma"){}// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
                else // sinon on alert l'user de la mauvaise extension
                {
                	alert("L'extension du fichier son que vous voulez uploader est :'"+extension+"'\n cette extension n'est pas autorisée !\n Seules les extesnions suivantes sont autorisées :\n'MP3;WAV;WMA' !");
                }
     
     
       }
    //verification extension du fichier TRS avant upload
    function verif_extensionTRS(fichier)// fonction vérification de l'extension aprés avoir choisi le fichier
    {
    ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
             if(ext==".trs"||ext==".doc"||ext==".txt"){}// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
             else // sinon on alert l'user de la mauvaise extension
             {
                alert("L'extension du fichier transcription que vous voulez uploader est :'"+extension+"'\n cette extension n'est pas autorisée !\n Seules les extesnions suivantes sont autorisées :\n'TRS;DOC;TXT' !");
             }
    }
     
    function verif_extensionCONV(fichier)// fonction vérification de l'extension aprés avoir choisi le fichier
    {
     
     
    ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
             if(ext==".doc"||ext==".txt"||ext==".pdf"){}// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
             else // sinon on alert l'user de la mauvaise extension
             {
                alert("L'extension du fichier convention que vous voulez uploader est :'"+extension+"'\n cette extension n'est pas autorisée !\n Seules les extesnions suivantes sont autorisées :\n'PDF;DOC;TXT' !");
             }
     
     
    }
     
    function verif_extensionANNEXE(fichier)// fonction vérification de l'extension aprés avoir choisi le fichier
    {
     
     
    ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
             if(ext==".doc"||ext==".txt"||ext==".pdf"||ext==".jpg"||ext==".jpeg"||ext==".gif"||ext==".png"){}// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
             else // sinon on alert l'user de la mauvaise extension
             {
                alert("L'extension du fichier annexe que vous voulez uploader est :'"+extension+"'\n cette extension n'est pas autorisée !\n Seules les extesnions suivantes sont autorisées :\n'PDF;DOC;TXT;JPG;JPEG;GIF;PNG' !");
             }
     
     
    }
     
     
    function verif_before_valid_form()// fonction de validation de formulaire
       {
          var msgerr="Veuillez vérifier les erreurs suivantes :\n";// préparation message d'erreur 
          var erreur = 0;// par defaut tout est ok
     
          if(document.formulaire.fichierSON.value!="")// si le champ fihier n'est pas vide
          {
                   ext = recup_extension(document.formulaire.fichierSON.value);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
                   if(ext==".wav"||ext==".mp3"||ext==".wma"){} // si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
                   else // sinon message d'erreur
                   {
                      msgerr=msgerr+"- L'extension du fichier son n'est pas valide, les extensions acceptées sont 'wav;mp3;wma' ! \n";// prépare message d'erreur
                      erreur = 1;// il y a une erreur donc on l'informe
                   }
          }
          else{
        	  msgerr=msgerr+"- Vous n'avez pas indiqué de fichier son à uploader ! \n";// prépare message d'erreur
              erreur = 1;// il y a une erreur donc on l'informe 
     
          }
     
          if(document.formulaire.fichierTRS.value!="")// si le champ fihier n'est pas vide
          {
                   ext = recup_extension(document.formulaire.fichierTRS.value);// on appelle la fonction de récupération de l'extension et on récupere l'extension
     
                   if(ext==".trs"||ext==".doc"||ext==".txt"){} // si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
                   else // sinon message d'erreur
                   {
                      msgerr=msgerr+"- L'extension du fichier transcription n'est pas valide, les extensions acceptées sont 'trs;doc;txt' ! \n";// prépare message d'erreur
                      erreur = 1;// il y a une erreur donc on l'informe
                   }
          }
          else{
        	  msgerr=msgerr+"- Vous n'avez pas indiqué de fichier transcription à uploader ! \n";// prépare message d'erreur
              erreur = 1;// il y a une erreur donc on l'informe 
     
          }
     
     
       if(erreur==1)
          {
             alert(msgerr);
             return (false);
          }
       else
          {
    	   return (true);
             transfert_file.submit();
          }
    }
    comme vous le voyez ma requete me renvoi un message et affiche une image pour le moment.

    merci de m'indiquer la marche à suivre pour obtenir ce que je souhaite.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    j'ai trouvé un début de réponse.
    en fait dans mon code ajax qui vérifie le statut et le nomfichierSource j'ai ajouté du code dans le if.

    en fait si le nom n'existe pas : donc upload obligatoire
    de ce fait j'ai ajouté un bout d'ajax lié a une bibliothèque jquery.
    ce code permettait de vérifier si certains champs etait vide.

    j'ai adapté pour voir si le champs upload est vide et si l'extension est correcte (grâce au expression réguliere)

    dans le cas ou l'upload est facultative je ne fais rien mais je pourrais éventuellement vérifier si l'extension est bonne au cas ou le champs n'est pas vide.

    voici le code rectifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    // ce code va vérifier la disponibilité du Nom de fichier SOURCE (attention le statut est associé au fichier)
    //on pourra avoir deux meme noms de fichiers source mais le statut sera différent
    //adaptation au form edition : si le statut est modifier lupload est obligatoire sinon il est facultatif
     
    var bNomFichierSource = false;
    function req_NomFichierSource(NomFichierSource) {
     
    	//XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
    	if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
    	else var XhrObj = new XMLHttpRequest(); //Mozilla
     
    	//content = document.getElementById("NomFichierSource_check"); 	//zone d'affichage
    	var content = document.getElementById("NomFichierSource_check"); 	//zone d'affichage
    	var srcFile = document.getElementById("NomFichierSource");
    	var statut = document.getElementById("StatutCorpus");
     
    	//fichierSON
    	var fichierSON = document.getElementById("fichierSON");
    	var fichierTRS = document.getElementById("fichierTRS");
     
    	XhrObj.open("POST", "../verif_modif_js/verif_StatutCorpus.php");
    	//XhrObj.open("POST", "verif_NomFichierSource.php", false);
    	//Ok pour la page cible
    	XhrObj.onreadystatechange = function()
    	{
    		if (XhrObj.readyState == 4 && XhrObj.status == 200) {
    			if (XhrObj.responseText == 'OK') {
    				content.innerHTML='<img src="../css/images/accepter.png" alt=""/><br><label>Upload obligatoire</label>';
    				bNomFichierSource = true; // ok nouveau pseudo
     
    				//=================================verification champs parcourir non vide=====================================//
    				$.fn.copyTo = function(to) {
    				    var to = $(to);
    				    for ( var i = 1; i < arguments.length; i++ )
    				        to.set( arguments[i], this.get(0)[ arguments[i] ] );
    				    return this;
    				};
     
    				new function() {
    				       // $.fn.validate = validate() {};
    				    $.fn.validate = {
    				        init: function(o) {
     
    				          if(o.name == 'email') { this.email(o) };
    				          if(o.name == 'fichierSON') { this.fichierSON(o) };
    				          if(o.name == 'fichierTRS') { this.fichierTRS(o) };
    				        },
     
     
     
    				        email: function(o) {
    				          var email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    				           if (o.value.match(email)) {
    				              doSuccess(o);
    				            } else {
    				              doError(o,'email incorrect');
    				            };
    				        },
    				        ///fichierSON
    				        fichierSON: function(o) {
    				          var fichierSON  = "^.{2,}(.wav|.mp3|.wma)$";
    				            if (o.value.match(fichierSON)) {
    				              doSuccess(o);
    				            } else {
    				              doError(o,'<label>problème fichier son!!</label>');
    				            };
    				        },
    				        fichierTRS: function(o) {
    					          var fichierTRS  = "^.{2,}(.trs|.doc|.txt)$";
    					            if (o.value.match(fichierTRS)) {
    					              doSuccess(o);
    					            } else {
    					              doError(o,'<label>problème fichier transcription!!</label>');
    					            };
    					        }
     
    				     };
     
    				     function doSuccess(o) {
    				              $('#' + o.id + '_img').html('<img src="../css/images/accept.gif" border="0" style="float:left;" />');
    				              $('#' + o.id + '_li').removeClass("error");
    				              $('#' + o.id + '_msg').html("");
    				              $('#' + o.id + '_li').addClass("success");
    				     }
     
    				     function doError(o,m) {
    				              $('#' + o.id + '_img').html('<img src="../css/images/exclamation.gif" border="0" style="float:left;" />');
    				              $('#' + o.id + '_li').addClass("error");
    				              $('#' + o.id + '_msg').html(m);
    				              $('#' + o.id + '_li').removeClass("success");
    				     }
    				     //private helper, validates each type after check
    				     function doValidate(o) {
    				        	$('#' + o.id + '_img').html('<img src="../css/images/loading.gif" border="0" style="float:left;" />');
    				        	$.post('ajax.php', { id: o.id, value: o.value }, function(json) {
    				                  	eval("var args = " + json);
    				                        if (args.success == true)
    				                  	{
    				                  	  doSuccess(args);
    				                  	}
    				                  	else
    				                  	{
    				                          doError(args,args.msg);
    				                  	}
    				                  });
    				    };
     
    				};
    				$.fn.match = function(m) {
    					$('#' + this.get(0).id + '_img').html('<img src="../css/images/loading.gif" border="0" style="float:left;" />');
    					if ($(this).get(0).val() == $(m.match).val()) {
    				          $('#' + this.get(0).id + '_img').html('<img src="../css/images/accept.gif" border="0" style="float:left;" />');
    				          $(m.error).removeClass("error");
    				          $(m.error).addClass("success");
    				          $('#' + this.get(0).id + '_msg').html("");
    				        } else {
    				          $('#' + this.get(0).id + '_img').html('<img src="../css/images/exclamation.gif" border="0" style="float:left;" />');
    				          $(m.error).addClass("error");
    				          $(m.error).removeClass("success");
    				          $('#' + this.get(0).id + '_msg').html("The passwords don't match, please try again");
    				        };
    				};
    				$(document).ready(function()
    				{
     
    				  $("//[@class=validated]/input").blur(function() {
    				          $(this).validate.init(this);
    				  });
     
     
     
    				  // This Used To Be HOVER, But I.E. Didnt Like It
    				  // $(".form
    					// li").hover(function(){$(this).addClass("selected");},function(){$(this).removeClass("selected");});
    				  $(".form li").mouseover(function() {
    				          $(this).addClass("selected");
    				  });
    				  $(".form li").mouseout(function() {
    				          $(this).removeClass("selected");
    				  });
    				});
    				//==============================fin de la vérification des champs====================================//
    			} else {
    				content.innerHTML='<img src="../css/images/refuser.png" alt=""/><br><label>Upload facultatif</label>';
    				bNomFichierSource = false; // erreur pseudo déjà existant
    			}
    		}
    	}
     
    	XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	//XhrObj.send('p='+encodeURIComponent(NomFichierSource));
    	XhrObj.send('p='+encodeURIComponent(srcFile.value)+'&s='+encodeURIComponent(statut.value));
     
     
     
     
    }
     
    function testChamps(f) {
    //	bNomFichierSource = false;  on va revalider le champ
    //	req_NomFichierSource(f.NomFichierSource.value);
    	if (!bNomFichierSource) {
    	 alert('L\'identifiant du corpus n\'est pas correct');
    	 return false;
    	}
     
    	return true;
     
     
     
     
     
     
     
    	}
    la bibliothèque jquery se trouve ici http://www.willjessup.com/sandbox/jq...ator/jquery.js

Discussions similaires

  1. [AJAX] [IE] Requete Ajax en cours et changement de page
    Par ..:: Atchoum ::.. dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/10/2007, 12h30
  2. [AJAX] Temporisation requete AJAX
    Par cerede2000 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/06/2007, 10h00
  3. [AJAX] deux requetes ajax dans une même page
    Par mitmit dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/05/2007, 12h52
  4. champs qui s'efface lors d'une requete ajax.
    Par starr dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2006, 08h33
  5. activer mod_proxy pour les requetes ajax
    Par xtaze dans le forum Apache
    Réponses: 1
    Dernier message: 17/05/2006, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo