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] Bouton de sauvegarde (ajax)


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut [AJAX] Bouton de sauvegarde (ajax)
    Bonjour,

    Je souhaiterais effectuer une sauvegarde d'une commande en cliquant sur un bouton. J'ai déjà fais mon traitement qui m'appelle une page js qui appelle une page php grâce à Ajax. Jusqu'ici tout fonctionne.

    Mon problème est que mes $_POST ne peuvent être utilisés dans ma page appelée ... je peux toujours utiliser des variables de session mais j'aimerais éviter puisqu'il y a pas mal de champs dans mon formulaire.

    Si quelqu'un à une solution ou même une aide, qu'il m'en fasse part je suis perdu
    Si vous avez besoin du code dites le moi

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Mon problème est que mes $_POST ne peuvent être utilisés dans ma page appelée ...
    Ah bon... pourquoi ?

    Si vous avez besoin du code dites le moi
    Disons que sans le code, ça rend un peu plus compliqué de voir où se situe ton problème
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Bonjour,

    Oui je suis d'accord que sans les codes ben ... c'est pas facile

    Les POST ne fonctionnent pas parce que lorsque je valide mon formulaire, je suis redirigé vers une page qui montre un descriptif de la commande et l'utilisateur peut, si il le souhaite, sauvegarder sa commande sans la passer.
    Mais le fait est que pour sauvegarder, j'appel un fichier js qui contient mon code Ajax qui lui même va chercher le fichier php qui contient les requêtes. Mais les post ne vont pas jusqu'à cette page. J'utiliserais bien des variables de session mais j'aimerais savoir si c'est optimisable.

    Voici ma page qui reçoit le formulaire :
    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
    <?php
            session_start();
            $_SESSION['prenom'] = 'root';
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN" "http://www.w3.org/tr/HTML4/loose.dtd">
    <HTML>
    <HEAD>
    	<meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
    	<title>D&eacute;tail de votre commande</title>
    	<script src="../js/Ajax.js" type="text/javascript"></script>
    </HEAD>
    <BODY>
     
    	<h1>D&eacute;tail de votre commande : </h1>
     
    	<form action="CommandeEnCours.php" method="post">
        	<table>
    	    	<tr>
    	        	<th>Nom du fichier</th>
    	            <th>Extension</th>
    	            <th>Nombre de pages</th>
    	        </tr>
    	        <tr>
    	        	<td><?php echo "" . $_SESSION['fnom'] . "";?></td>
    	        	<td></td>
    	        	<td></td>
    	        </tr>
    		</table>
     
    		Niveau d'urgence :
    		<select name="Niveau">
    						<option value="" ></option>
    						<option value="" ></option>
    		</select>
    		<br><br>
    		<button type="button" name="SauvegarderCommande" OnClick="Save()">Sauvegarder</button>
    		<button type="submit" name="envoyer">Envoyer</button>
    		<button type="reset">Annuler</button>
    	</form>
     
    </BODY>
    </HTML>
    Mon script 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
    function getXhr()
    {
        var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    	xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    		{ 
    			// Internet Explorer 
    			try {
    			    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    			    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    	else 
    		{ 
    			// XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			xhr = false; 
    		} 
            return xhr;
    }
     
    /*****************************************************
     ** Méthode qui sera appelée sur le click du bouton **
     ** pour appeler la page php à traiter avec Ajax    **
     *****************************************************/
    function Save()
    {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			alert(xhr.responseText);
    		}
    	};
    	xhr.open("GET","../php/SauvCommande.php",true);
    	xhr.send(null);
    }
    Et finalement ma page appelée par ajax:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
            echo "Commande sauvegardee";
            $i=0;
            while(isset($_POST["type"+$i]))
            {
                    echo $_POST["type"+$i]."<br/>";
            }
            include '../class/Autoload.php';
            $commande = new Commande();
            $commande->AjouterCommande();
    ?>

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    xhr.open("GET","../php/SauvCommande.php",true);
    while(isset($_POST["type"+$i]))
    1- Si tu veux utiliser la méthode GET, tu dois concaténer les données avec l'URL. Par contre si tu utilises la méthode POST, tu dois les concaténer dans le paramètre de la methode send.
    2- avec ton code, tu appelles la page en GET sans donnée et tu veux récupérer des trucs dans $_POST. L'ajax ne fait pas de magie .

    Je te conseille de relire de tutoriels.

    A+.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Bonjour,

    Je me disais bien que cela pouvais provenir du fameux GET ... Que voulez-vous dire par la méthode send ?
    Je pense aussi que çà peut venir du fait que le bouton de sauvegarde ne soit pas du type submit puisque je ne veut pas qu'il soumette le formulaire. Je veux juste que l'utilisateur puisse enregistrer sa commande sans l'envoyer. En effet, lors de la validation du formulaire j'envoie un mail, et donc si il l'enregistre, il n'est pas obliger de l'envoyer.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Bonjour, il faut utiliser cette façon de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     var data = "file=" + url +  "&content=" + content;
     xhr.open("POST", "ajax-post-text.php", true);
     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
     xhr.send(data);
    Pour faire simple, en POST il faut passer les paramètres dans le send().

Discussions similaires

  1. [AJAX] boutons de navigation
    Par Stumi dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/06/2008, 10h53
  2. [AJAX] bouton retour en arriere du navigateur
    Par Emcy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/05/2008, 09h53
  3. Réponses: 11
    Dernier message: 03/10/2007, 10h45
  4. [UpdatePanel] comment exclure un bouton du panneau ajax
    Par petitchat dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/06/2007, 16h46
  5. [AJAX] Ajax + bouton type image
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/12/2006, 09h38

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