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

JavaScript Discussion :

Problème d'envoi d'un formulaire avec xmlhttprequest


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 164
    Par défaut Problème d'envoi d'un formulaire avec xmlhttprequest
    Bonjour,

    Je développe un site et j'utilise un XMLhttprequest pour aller mettre à jour une table de ma base de données.
    Dans ma fonction javascript qui appelle mon script php, j'ai mis un alert() pour vérifier que mes paramètres soient corrects.
    Mon problème c'est que quand il y a le "alert()" tout ce passe bien et les mises à jour ce font bien, par contre quand j'enlève le "alert()", il y a mon message d'erreur qui s'affiche (Problème grave, prévenir la maintenance, pas d'ajout de document) (cf code).

    Est-ce déjà arrivé à quelqu'un ?

    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
    function majdoc(type){
     
    	// Contrôle des saisies
    	switch(type)
    	{
    	case 0:
    		doc_nom = document.getElementById("nom_doc").value;
    		nom_aut = document.getElementById("nom_aut").value;
    		doc_com = document.getElementById("doc_com").value;
    		doc_typ = document.getElementById("type").value;
    		doc_cat = document.getElementById("cat").value;
     
    		// Contrôle des saisies
    		if(doc_nom == ""){
    			alert("Le nom du document est obligatoire");
    			document.getElementById("nom_doc").focus();
    			return false;
    		}
     
    		if(nom_aut == ""){
    			alert("Le nom de l'auteur est obligatoire");
    			document.getElementById("nom_aut").focus();
    			return false;
    		}
     
    		if(doc_com == ""){
    			alert("Veuillez décrire le document ajouté");
    			document.getElementById("doc_com").focus();
    			return false;
    		}
     
    		if(doc_cat == ""){
    			alert("Veuillez choisir une catégorie");
    			return false;
    		}
     
    		// Création de la chaine de paramètres
    		chaine = "nom=" + doc_nom +	"&aut=" + nom_aut + "&com=" + doc_com + "&typ=" + doc_typ + "&ext=";
    		break;
    	case 1:
    		doc_nom = document.getElementById("nom_doc").value;
    		doc_com = document.getElementById("doc_com").value;
    		doc_typ = document.getElementById("type").value;
    		doc_ext = document.getElementById("ext").value;
    		doc_cat = document.getElementById("cat").value;
     
    		// Contrôle des saisies
    		if(doc_nom == ""){
    			alert("Le titre de la demande est obligatoire");
    			document.getElementById("nom_doc").focus();
    			return false;
    		}
     
    		if(doc_com == ""){
    			alert("Veuillez ajouter le texte de votre demande");
    			document.getElementById("doc_com").focus();
    			return false;
    		}
     
    		if(doc_ext == ""){
    			alert("Veuillez sélectionner un type de document");
    			return false;
    		}
     
    		if(doc_cat == ""){
    			alert("Veuillez choisir une catégorie");
    			return false;
    		}
     
    		// Création de la chaine de paramètres
    		chaine = "nom=" + doc_nom + "&aut=&com=" + doc_com + "&typ=" + doc_typ + "&ext=" + doc_ext;
    		break;
    	default:
    		alert("Gros problème prévenir le support technique");
    		break;
    	}
     
    	// Récupération des paramètres
    	var obj;
     
    	// Détection du navigateur utilisé
    	if(window.XMLHttpRequest)				// Firefox 
    		obj = new XMLHttpRequest();
    	else if(window.ActiveXObject)			// Internet Explorer 
    		obj = new ActiveXObject("Microsoft.XMLHTTP");
    	else {									// XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	return; 
    	}
     
    	// Définition des paramètres d'envoi
    	obj.open("POST","MajDocOk.php",true);
     
    	// Traitement de la requête
    	obj.onreadystatechange = function(){
    		if(obj.readyState == 4){
    			if(obj.responseText == ""){
    				alert("Problème grave, prévenir la maintenance, pas d'ajout de document");
    			}
    			else{
    				document.getElementById("Aff").innerHTML = obj.responseText;
    			}
    		};
    	}
     
    	// Envoi de la requête
    	obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	obj.send(chaine);
    alert(chaine);
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut
    J'ai le même probléme cf :

    "http://www.developpez.net/forums/showthread.php?t=222429"


    Mais n'est pas de solution :-)

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    En changeant un peu l'ordre...
    // Traitement de la requête
    obj.onreadystatechange = function(){
    if(obj.readyState == 4){
    if(obj.responseText == ""){
    alert("Problème grave, prévenir la maintenance, pas d'ajout de document");
    }
    else{
    document.getElementById("Aff").innerHTML = obj.responseText;
    }
    };
    }

    // Envoi de la requête
    obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    // Définition des paramètres d'envoi
    obj.open("POST","MajDocOk.php",true);
    obj.send(chaine);

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut
    La réponse peut avoir deux formes
    - soit 'OK'
    - soit une page html compléte indiquant une erreur.

    Cette solution (comparaison avec "") ne fonctionne pas dans mon cas.

    Je suis preneur d'une autre proposition (suis en galére).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut
    Mon Probléme est résolu, je pense que nous avions le même probléme voir topic suivant :

    http://www.developpez.net/forums/sho...d.php?t=222429

Discussions similaires

  1. problème d'envoi d'un formulaire avec zend_form_file
    Par aziza_1989 dans le forum Zend_Form
    Réponses: 4
    Dernier message: 21/09/2012, 18h17
  2. Réponses: 0
    Dernier message: 10/09/2008, 20h40
  3. problème d'envoi d'une variable avec get
    Par ANISSS dans le forum Langage
    Réponses: 7
    Dernier message: 23/02/2007, 12h49
  4. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  5. Erreur formulaire avec XMLHttpRequest
    Par MathieuG dans le forum Langage
    Réponses: 9
    Dernier message: 21/09/2005, 11h43

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