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] Je n'arrive pas à envoyer de variables via ajax [Débutant(e)]


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [AJAX] Je n'arrive pas à envoyer de variables via ajax
    Bonjour,

    Actuellement j'essayer de faire un petit programme de vote, le coté php/mySQL fonctionne comme prévu mais je n'arrive pas à envoyer de variable via ajax entre mes deux fichiers.

    Voici mon code concernant ajax sur mon index :


    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
    <body>
    <?php $id=1; ?>
    	<div class="barre-reseaux-sociaux">
    		<button type="button" onclick="traitementVote(1, <?php echo $id; ?>)">1</button>
    		<button type="button" onclick="traitementVote(2, <?php echo $id; ?>)">2</button>
    		<button type="button" onclick="traitementVote(3, <?php echo $id; ?>)">3</button>
    		<button type="button" onclick="traitementVote(4, <?php echo $id; ?>)">4</button>
    		<button type="button" onclick="traitementVote(5, <?php echo $id; ?>)">5</button>
    	</div>
     
    	<script>
    		function traitementVote(choixVote, idSite) {
    			var xhr = new XMLHttpRequest();
    			data="vote="+choixVote+"&id="+idSite;
    			xhr.open('POST',votePhP.php);
    			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");     
    			xhr.send(data); 
    		}		
    	</script>
    </body>


    Et le code du fichier votePhP.php qui s'occupe de récupérer ces variables:


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    		$choixVote=$_POST["vote"];
    		$choixId=$_POST["id"];
    	?>



    Le problème est simple, je veux juste envoyer la valeur du vote et l'id du site sur mon fichier php qui s'occupera de mettre à jour la base de données.

    Qu'ais-je mal fait dans mon code ajax ?

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    		$choixVote=$_POST["vote"];
    		$choixId=$_POST["id"];
    	?>
    Là, tu récupères les paramètres, mais tu n'en fais rien...
    Essaye avec
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $choixVote=$_POST["vote"];
    $choixId=$_POST["id"];
    echo 'Votre vote : '.$choixVote.' / Votre id : '.$choixId;
    ?>
    et tu verras que dans la réponse, les paramètres sont bien passés.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ce que j'ai posté n'est que la partie concernant ajax, dans mon fichier php j'utilise les données reçues pour mettre à jour le nombre de votes du site dans ma base de données.

    Je n'ai pas posté cette partie du code car elle est trés longue et fonctionne.

    Là où je bloque c'est lors de la transmission des données, lorsque je clic sur mon image comportant le onclick les données ne sont pas transmises à mon fichier votePhP.php.

    Je met dans ce post mon code complet :

    index.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
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    		<title>star</title>
    		<link rel="stylesheet" type="text/css" href="voteCSS.css" />
    		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    	</head>
    	<body>
    		<div id="vote">
    			<?php $id=1; ?>
    			<div id="texteVote">
    				Donnez votre avis !
    			</div>
    			<div class="icone-vote">
    				<button type="button" onclick="traitementVote(1, <?php echo $id; ?>)">1</button>
    				<button type="button" onclick="traitementVote(2, <?php echo $id; ?>)">2</button>
    				<button type="button" onclick="traitementVote(3, <?php echo $id; ?>)">3</button>
    				<button type="button" onclick="traitementVote(4, <?php echo $id; ?>)">4</button>
    				<button type="button" onclick="traitementVote(5, <?php echo $id; ?>)">5</button>
    			</div>
    			<?php 
    			/***************************************/
    			/**** Connection au serveur et base ****/
    			/***************************************/
    			$serveur = mysql_connect("localhost","root","");												   
    			if (!$serveur)
    			{
    				die('Non connecte : ' . mysql_error());
    			} 
     
    			$db_basevote = mysql_select_db('basevote', $serveur);												   
    			if (!$db_basevote)
    			{
    				die ('Impossible d\'utiliser la base : ' . mysql_error());
    			}                          
    			/***************************************/
    			/***************************************/
     
    			/**************************************/
    			/* Recup ip utilisateur et ip sotckee */
    			/**************************************/
     
    			$ip = $_SERVER['REMOTE_ADDR'];
     
    			$sql = "SELECT ip FROM basevote WHERE id = '$id' AND vote = 1";                                                 
    			$envoi = @mysql_query($sql);																         
    			$line = @mysql_fetch_row($envoi);
    			$ipCompare = $line[0];
     
     
    			$testVote = 0;
    			if ($ip == $ipCompare) {
    				$testVote = 1;
    			}
     
    			/***************************************/
    			/***************************************/
     
    			/*******************************************/
    			/** Recup des votes dans la BDD et calculs */
    			/*******************************************/
     
    			$sql = "SELECT nombreVotes FROM basevote WHERE id='$id'";                                          
    			$envoi = mysql_query($sql);
    			$nbrVoteX = array();
    			$i = 0;
    			while ($lines = mysql_fetch_object($envoi)) {
    				$nbrVoteX[$i] = $lines->nombreVotes;
    				$i++;
    			}
    			$nbrVote1 = $nbrVoteX[0];
    			$nbrVote2 = $nbrVoteX[1];
    			$nbrVote3 = $nbrVoteX[2];
    			$nbrVote4 = $nbrVoteX[3];
    			$nbrVote5 = $nbrVoteX[4];
     
    			$totalVote = $nbrVote1 + $nbrVote2 + $nbrVote3 + $nbrVote4 + $nbrVote5; 						
    			$valeurVote = $nbrVote1 + $nbrVote2*2 + $nbrVote3*3 + $nbrVote4*4 + $nbrVote5*5;                              
    			$moyenneVoteBrut = $valeurVote/$totalVote;
    			$moyenneVote = number_format($moyenneVoteBrut,2); 
     
    			/***************************************/
    			/***************************************/
     
    			/*******************************************/
    			/** Affichage des donnees */
    			/*******************************************/
     
    			$info = "rating : $moyenneVote /5 ($totalVote votes cast)" ;									
    			$vote = "Vous avez voté !";
    			if ( $testVote == 1) {
    				echo $info;
    				?> <br /> <?php
                                    echo $vote;
                            }
                            else {
                                    echo $info;
                            }
                    ?>
    		</div>
    		<script>
    			function traitementVote(choixVote, idSite) {
    				var xhr = new XMLHttpRequest();
     
    				data="vote="+choixVote+"&id="+idSite;
    				xhr.open('POST',votePhP.php);
    				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");     
    				xhr.send(data); 
    			}				
    		</script>
    	</body>
    </html>

    votePhP.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
    61
    <?php
    	/************************************************************/
    	/**** Connection au serveur et base + recup des variables****/
    	/************************************************************/
     
    	$choixVote=$_POST["vote"];
    	$choixId=$_POST["id"];
     
    	$serveur = mysql_connect("localhost","root","");												 
    	if (!$serveur)
    	{
    		die('Non connecté : ' . mysql_error());
    	} 
     
    	$db_basevote = mysql_select_db('basevote', $serveur);											
    	if (!$db_basevote)
    	{
    		die ('Impossible d\'utiliser la base : ' . mysql_error());
    	}                          
     
    	/************************************************************/
    	/************************************************************/
     
    	/************************************************************/
    	/*********** Recup ip utilisateur et ip sotckee *************/
    	/************************************************************/
     
    	$ip = $_SERVER['REMOTE_ADDR'];                                                                    
     
    	$sql = "SELECT ip FROM basevote WHERE id = '$choixId' AND vote = 1";                                                 
    	$envoi = @mysql_query($sql);																         
    	$line = @mysql_fetch_row($envoi);
    	$ipCompare = $line[0];
     
    	/************************************************************/
    	/************************************************************/
     
    	/************************************************************/
    	/******** Lancement du traitement et vérification ip*********/
    	/************************************************************/
     
    	if ($ip == $ipCompare) {																			  
    		$e =0;
    	}
    	else {                                                                                               
     
    		$sql = "UPDATE basevote SET ip = '$ip' WHERE id = '$choixId' AND vote = 1";           
    		$envoi = @mysql_query($envoi);
     
    		$sql = "SELECT nombreVotes FROM basevote WHERE id = '$choixId' AND vote = '$choixVote'";                                                  
    		$envoi = @mysql_query($sql);																        
    		$line = @mysql_fetch_row($envoi);
     
    		$nbrVote = $line[0];
    		$newVote = $nbrVote + 1;				     													         
     
    		$sql = "UPDATE basevote SET nombre = '$newVote' WHERE id = '$choixId' AND vote = '$choixVote'";       
    		$envoi = @mysql_query($envoi);                                                                        
    	}
     
    ?>

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2017, 07h55
  2. n'arrive pas à envoyé la confirmation ok
    Par sinifer dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2010, 15h45
  3. net send n'arrive pas à envoyer de message
    Par andrianiaina dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/07/2010, 00h24
  4. Réponses: 5
    Dernier message: 23/01/2009, 10h30
  5. [Configuration] Je n'arrive pas à envoyer un gros fichier
    Par Alexandrebox dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/03/2007, 09h31

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