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] JQuery + Ajax


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut [AJAX] JQuery + Ajax
    Bonjour, je viens à vous pour m'éclairer sur un petit probleme que j'ai et dont bien sur je ne trouve pas la solution.
    Pour expliquer je voudrais pouvoir modifier les options des article dans un panier avec ajax et Jquery alors voici déjà l'appel ajax;
    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
     
    function PanierModif(id){
     
    	$("#message").text("en cours");
     
    	$.ajax({
    	type: "POST",
            url: "class/AjaxPanier.php",
            data: $("#form"+id).serialize(),
            error: function(msg){
                alert(msg);
            },
            success: function(data){
                alert(data+"\nsont passées.");
                $("#message").html(data);
            }
        });	
    }
    et voici le 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
     
    require('../configure.php');
    require('database.php');	
    $database2 = new Database(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD,  DB_DATABASE);
     
    if (isset($_POST['session'])){
    	$session = $_POST['session'];
    	$articleId = $_POST['articleId'];	
    	$optionPost = preg_split('/_/', $_POST['options']);	
    	$couleurId = $optionPost[0];
    	$tailleId = $optionPost[1];
    	$nbre = $_POST['nbre'];		
     
    	//$database2->Query('UPDATE commandes_tmp SET CTTailleId='.$tailleId.', CTCouleurId='.$couleurId.', CTNbre='.$nbre.' WHERE CTArticleId ='$articleId.' AND CTSession = '.$session.'');
    	echo 'ok';
    }else{
    	echo 'ko';
    }
    Bon pour l'instant j'ai commenté la mise à jour de la base de donnée.

    et lorsque la fonction PanierModif et jouée, je me retrouve avec une alert comprenant le texte suivant :
    [object XMLHttpRequest]

    De plus j'ai l'impression que le serialize ne fonctionne pas ??

    j'ai cherché un peu de doc sur ce problème mais rien de bien expliqué donc si quelqu'un pouvait m'aider un peu ça serait très gentil.
    Merci à vous.

  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
    Il semblerait surtout que tu te retrouves dans le cas d'une erreur puisque ta requête retourne l'objet xhr.
    Tu devrais vérifier l'URL appelée
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut
    Déjà merci de te préoccuper de mon probleme ^^, mais c'eût été trop facile
    J'ai vérifie et rentré en dur l'adresse mais rien n'y fait.
    De plus j'ai modifié ma fonction javascript car en fait il y aura plusieurs articles donc des formulaires différents pour chaque article .
    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
     
    function PanierModif(id){
     
    	$("#message").text("en cours");
    	var session = $("#session"+id).val();
    	var articleId = $("#article"+id).val();
    	var options = $("#options"+id).val();
    	var nbre = $("#nbre"+id).val();
    	$.ajax({
    		type: "POST",
                    url: "http://localhost/popo/class/AjaxPanier.php",
                   data: "session="+session+"&articleId="+articleId+"&options="+options+"&nbre="+nbre+"",       
                   success: function(data){
                         alert(data+"\nsont passées.");
                         $("#message").html(data);
                   },
    	       error: function(msg){
                         alert(msg);
                  }
        });	
    }
    J'ai aussi corrigé une petite erreur dans la page AjaxPanier.php, il manquait un point dans la requête
    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
     
    <?php
    	require('../configure.php');
    	require('database.php');	
    	$database2 = new Database(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD,  DB_DATABASE);
     
    if (isset($_POST['session'])){
    	$session = $_POST['session'];
    	$articleId = $_POST['articleId'];	
    	$optionPost = preg_split('/_/', $_POST['options']);	
    	$couleurId = $optionPost[0];
    	$tailleId = $optionPost[1];
    	$nbre = $_POST['nbre'];		
     
    	$database2->Query("UPDATE commandes_tmp SET CTTailleId=".$tailleId.", CTCouleurId=".$couleurId.", CTNbre=".$nbre." WHERE CTArticleId =".$articleId." AND CTSession = ".$session."");
    	echo '<p>ok</p>';
    }else{
    	echo '<p>ko</p>';
    }
     
     
    ?>
    Ensuite dans Firebug je vois qu'il passe bien les variables en post par contre je n'arrive pas a voir la réponse de la page AjaxPanier.php. Sauf si j'y accede directement avec l'url et là bien entendu il me marque "KO" logique

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Par défaut
    Bon finalement j'ai trouvé une solution mais je dois avouer que je c'est pas trop pourquoi j'ai eu ce bug .
    et pour ce qui veulent en savoir plus voici mon code ^^:

    Javascript
    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
     
    $('#submit0').click(function () {		
        $("#message").text("en cours");
        var id = "0";
        var session = $("#session"+id).val();
        var articleId = $("#articleId"+id).val();
        var options = $("#options"+id).val();
        var nbre = $("#nbre"+id).val();
        var data = 'session=' + session + '&articleId=' + articleId + '&options=' + options + '&nbre='  + nbre + '';
        $("#message").text(data);
            $.ajax({
    		url: "http://localhost/popo/class/AjaxPanier.php",
    		type: "GET",			
    		data: data,       
    		success: function(html){				
    			$("#message").text(html);
    		}
    	});
    	return false;
    });
    Bon maintenant il faut que je trouve une solution pour que je puisse utiliser cette fonction pour les différents formulaires que je vais avoir sur la page

    et voici le code 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
     
    <?php
            require('../configure.php');
            require('database.php');        
            $database2 = new Database(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD,  DB_DATABASE);
            
            $session = ($_GET['session']) ? $_GET['session'] : $_POST['session'];
            $articleId = ($_GET['articleId']) ? $_GET['articleId'] : $_POST['articleId'];
            $options = ($_GET['options']) ? $_GET['options'] : $_POST['options'];
            $nbre = ($_GET['nbre']) ? $_GET['nbre'] : $_POST['nbre'];
            
            if ($_POST) $post=1;
            
            if (!$session) $errors[count($errors)] = 'Probleme de session.';  
            if (!$articleId) $errors[count($errors)] = 'Probleme de recuperation de l\'identifiant article.';   
            if (!$options) $errors[count($errors)] = 'Selectionner une option';  
            if (!$nbre) $errors[count($errors)] = 'Selectionner un nombre';  
            
            $optionPost = preg_split('/:/', $options);      
            $couleurId = $optionPost[0];
            $tailleId = $optionPost[1];     
     
            $result = $database2->Query("UPDATE commandes_tmp SET CTTailleId='$tailleId', CTCouleurId='$couleurId', CTNbre='$nbre' WHERE CTArticleId = '$articleId' AND CTSession = '$session'");
            
            
            if ($_POST) {  
                    if ($result) echo 'Données modifiées.';  
                    else echo 'Probleme de mise à jour.';  
               
        } else {  
            if($result == 1) echo "Données modifiées.";
                    else echo "Probleme de mise à jour.";     
        }  
    ?>
    bon je n'ai rien commenté pour l'instant mais ça sera fait .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JQuery] Ajax et bulle d'aide [ToolTip]
    Par Invité dans le forum jQuery
    Réponses: 1
    Dernier message: 04/07/2008, 10h18
  2. [JQuery] ajax avec Firefox
    Par elvan49 dans le forum jQuery
    Réponses: 2
    Dernier message: 17/12/2007, 12h21
  3. jquery ajax et IE
    Par Sourrisseau dans le forum jQuery
    Réponses: 1
    Dernier message: 01/09/2007, 05h17
  4. [JQuery] Ajax et réécriture d'url
    Par Nicolas N. dans le forum jQuery
    Réponses: 1
    Dernier message: 21/07/2007, 20h31

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