Probleme avec mon code jquery, text affiché est data

Résolu/Fermé
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018 - Modifié par Aaymeric le 26/02/2015 à 20:08
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 2 mars 2015 à 10:37
Bonjour,
J'ai un petit soucis avec mon code jquery (enfin je pense que c'est lui qui pose problème). J'ai un formulaire avec un champ destinataire qui renvoie dynamiquement si le membre précisé existe ou nous dans la base de donné. Le problème c'est qu'il existe ou non il m'affiche "data" La dernière fois que j'ai eu ce problème c'était à cause de simples guillemets mais la je suis un peu perdu :s Pour mieux vous orienter, voici mon code:

Mon formulaire:
<?php
        if(isset($_GET['emetteur'])){
         $emetteur = htmlentities($_GET['emetteur']);
         echo '<td><input type="text" name="destinataire" id="destinataire" value="'.$emetteur.'"/><span class="feedback"></span></td>';
        } else {
         echo '<td><input type="text" name="destinataire" id="destinataire" value="" /><span class="error"></span></td>';
        }
       ?>

(J'ai bien implémenté mon fichier JS à la fin)

le code js:
$(document).ready(function(){
 $('#destinataire').keyup(function(){
 var destinataire = $('#destinataire').val();
 if(destinataire != ""){
  $.post('verifmembre.php',{destinataire:destinataire},function(data){
  $('.feedback').text(data); 
 });
 } else {
  $('.feedback').text('Veuillez inscrire un membre');
 }
 });
 
});


Et verifmembre.php
<?php 
 include '..connection.php'; 
 //Partie pour le jquery
 $destinataire = $_POST['destinataire'];
 $query = $bdd-prepare('SELECT COUNT() as nb FROM membres WHERE pseudo = ? ');
 if ($query == false) {
   echo 'Erreur prepare';
   print_r($bdd-errorInfo());
   die();
 }
 $res = $query-execute(array($destinataire));
 if ($res == false) {
   echo 'Erreur execute';
   print_r($query-errorInfo());
   die();
 }
 $row = $query-fetch();
 if ($row['nb']  0) {
   echo 'Ce user est déjà utilisé';
 } else {
   echo 'Ce user est dispo';
 }
 //Fin
?>


Une petite idée ? Merci
A voir également:

15 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
26 févr. 2015 à 19:41
Bonjour
des quotes en trop autour e ta variable data
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
26 févr. 2015 à 19:54
Je les avais enlevé à la base mais le problème est toujours la :)
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
27 févr. 2015 à 10:56
Perso .. j'ai du mal avec cette écriture simplifiée de l'ajax...
Je préfère utiliser la syntaxe plus "complète"

Que te donne ceci ?:
$(document).ready(function(){
  $('#destinataire').keyup(function(){
  var destinataire = $('#destinataire').val();
  if(destinataire != ""){
   var urlPagePhpAjx = "verifmembre.php";
    $.ajax({ 
        type: "POST",
            url:urlPagePhpAjx,
            data: { destinataire:destinataire },
            async: false,
            dataType: "html",
            success: function(reponse){
               $('.feedback').text(reponse);
	        //Le temps des tests :
	       alert(reponse);
            },
            error:function (xhr, ajaxOptions, thrownError) {
              alert("Status:"+xhr.status + "\n Error:"+thrownError);
            } 
         });
  }else{
    $('.feedback').text('Veuillez inscrire un membre');
  }
 });
});





0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
27 févr. 2015 à 10:59
Au passage ... il manque les signes ">" dans ton code PHP ...
$bdd-prepare
// A changer par : 
$bdd->prepare


Idem pour $query-execute , $query-errorInfo , $query-fetch ..
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
27 févr. 2015 à 16:43
Ah bha oui qu'est-ce qui m'ait arrivé ? :s J'ai changé mais le problème est toujours là ..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
27 févr. 2015 à 17:04
Afin d'être sûr de ne pas faire d'erreur, j'ai mon dossier principal ou il y a entre autre un dossier message qui contient mon formulaire (le cheminement vers mon fichier js est correct) et un autre dossier JS ou il y a mon fichier js.
Dans ce fichier js il y a la ligne de code:
$.post('verifmembre.php',

Du coup, et n'étant pas sur de l'endroit ou je dois mettre mon fichier verifmembre.php, j'ai mis ce dernier dans le dossier JS et dans le dossier message mais il est censé se trouvé ou sans changer le code ?
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
27 févr. 2015 à 19:00
Tu as testé MON code ?
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
27 févr. 2015 à 20:06
Non plus, j'ai toujours comme réponse "data" :s
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
27 févr. 2015 à 20:40
Pas possible. ...
tu peux nous montrer ton code html égalementet le code mmodifié basé sur MON code ?
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
Modifié par Aaymeric le 28/02/2015 à 15:08
Biens sur:
mondossierprincipal/message/nouvmessage.php
<?php 
 include '../connection.php';
 /* il faut demarrer la session*/
 session_start();
 if(isset($_SESSION['id'])){
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link href="../css/main2.css" rel="stylesheet" type="text/css"> 
  <link href="../css/message.css" rel="stylesheet" type="text/css"> 
  <link href="../css/menumembre.css" rel="stylesheet" type="text/css">
  <link href="../css/sousmenu.css" rel="stylesheet" type="text/css"> 
  
  <title>Swap-it.com</title>
    </head>
    <body>
  <div id="header"> 
   <span class="titre"> Swap-it </span>
   <div id="menumembre">
    <?php 
     include 'menumembre.php';
    ?>
   </div>
  </div>
  <div id="centre">
   <div id="message">
     <div id="menumessage">
      <ul><!--
      --><li><a href="message.php">Boite à réception</a></li><!--
      --><li><a href="messageenvoye.php">Message envoyé</a></li><!--
      --><li><a href="nouvmessage.php">Nouveau message</a></li>
      </ul>
     </div>
     <span class="titremessage">Nouveau message</span>
     <form id="contact" action="verifmessage.php" method="post" name="formulaire">
      <table>
       <tr>
       <td><label for="destinataire">Destinataire</label>: </td><span class="feedback"></span>

       <?php
        if(isset($_GET['emetteur'])){
         $emetteur = htmlentities($_GET['emetteur']);
         echo '<td><input type="text" name="destinataire" id="destinataire" value="'.$emetteur.'"/><span class="feedback"></span></td>';
        } else {
         echo '<td><input type="text" name="destinataire" id="destinataire" value="" /><span class="error"></span></td>';
        }
       ?>
        
       </tr>
       <tr>
        <td><label for="titre">Titre:</label></td>
        <td><input type="text" id="titre" name="titre" size="60px"></input><span class="error"></span><td>
        
       
       <tr>
        <td><label for="message">Message:</label></td>
        <td><textarea id="mess" name="message" rows="6" cols="60"></textarea><span class="error"></span><td>
       </tr>
      </table>
       <input type="submit" value="Envoyer" id="submit"/>
     </form>
   </div>
  </div>
  <div id="footer">
  </div>
  <script type='text/javascript' src='../js/jquery.js'></script>
  <script type='text/javascript' src='../js/message.js'></script>
  <script type='text/javascript' src='../js/verifpseudo.js'></script>
 </body>
</html>  
<?php
 }
?>


mondossierprincipal/js/verifpseudo.js
$(document).ready(function(){
  $('#destinataire').keyup(function(){
  var destinataire = $('#destinataire').val();
  if(destinataire != ""){
   var urlPagePhpAjx = "verifmembre.php";
    $.ajax({ 
        type: "POST",
            url:urlPagePhpAjx,
            data: { destinataire:destinataire },
            async: false,
            dataType: "html",
            success: function(reponse){
               $('.feedback').text(reponse);
         //Le temps des tests :
        alert(reponse);
            },
            error:function (xhr, ajaxOptions, thrownError) {
              alert("Status:"+xhr.status + "\n Error:"+thrownError);
            } 
         });
  }else{
    $('.feedback').text('Veuillez inscrire un membre');
  }
 });
});
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 15:14
Avec ton code j'ai ce message d'erreur:

<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Parse error: syntax error, unexpected T_LNUMBER in C:\wamp\www\Swap-it\message\verifmembre.php on line <i>18</i></th></tr>
</table></font>

Mais je ne vois pas ou est l'erreur de parenthèse, tout me semble correcte :\
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 févr. 2015 à 15:19
Le message est clair. .le souci est sur la ligne 18.... il manque des == dans ton if non ??
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 15:16
Et mon verifmembre.php ressemble à ceci:
<?php 
	include '..connection.php';	
	//Partie pour le jquery
	$destinataire = $_POST['destinataire'];
	$query = $bdd->prepare('SELECT COUNT() as nb FROM membres WHERE pseudo = ? ');
	if ($query == false) {
	  echo 'Erreur prepare';
	  print_r($bdd->errorInfo());
	  die();
	}
	$res = $query->execute(array($destinataire));
	if ($res == false) {
	  echo 'Erreur execute';
	  print_r($query-errorInfo());
	  die();
	}
	$row = $query->fetch();
	if ($row['nb'] == 0) {
	  echo 'Ce user est déjà utilisé';
	} else {
	  echo 'Ce user est dispo';
	}
	//Fin
?>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 févr. 2015 à 16:03
Il manque encore un ">" à la ligne 14 !!

Essayes donc ce code :
<?php 
	include '../connection.php';	

	$destinataire = isset($_POST['destinataire'])?$_POST['destinataire']:NULL;
	if($destinataire){
		$sql="SELECT COUNT() as nb 
					FROM membres 
					WHERE pseudo = '?' ";
		
		$query = $bdd->prepare($sql);
		if ($query == false) {
			echo 'Erreur prepare';
			print_r($bdd->errorInfo());
			die();
		}
		$res = $query->execute(array($destinataire));
		if (!$res) {
			echo 'Erreur execute';
			print_r($query->errorInfo());
			die();
		}
		$row = $query->fetch();
		if ($row) {
			echo 'Ce user est déjà utilisé';
		} else {
			echo 'Ce user est dispo';
		}
	}else{
	 echo "Error : Aucun user...!";
	}
	//Fin
?>
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 16:09
Décidément ... Toujours le même problème ...
J'ai ce message d'erreur maintenant:

Erreur executeArray
(
[0] => 42000
[1] => 1064
[2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') as nb

FROM membres

WHERE pseudo = '?'' at line 1
)
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 févr. 2015 à 16:20
Manque un * dans le count...
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 16:29
C'est curieux mais ca marche à moitié ^^
Le texte affiché est toujours "data" mais dans le message d'erreur il m'indique toujours que l'user est déjà utilisé qu'il existe vraiment ou non dans ma BDD. J'ai modifié simplement le if en: if ($row == 0) { ... Mais du coup il m'indique toujours que l'user est dispo (qu'il existe vraiment ou non dans la bdd)
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié par jordane45 le 28/02/2015 à 16:52
Le souci c'est que tu n'as pas mis d' ID à tes span...(et que tu en as plusieurs...)
donc déjà.. mets y des ID
par exemple :
<span id="destinataireFeedBack" class="feedback"></span>


Ensuite.. modifie le code js ainsi :
$(document).ready(function(){
  $('#destinataire').keyup(function(){
  var destinataire = $('#destinataire').val();
  if(destinataire != ""){
   $("#destinataireFeedBack").html();
   var urlPagePhpAjx = "verifmembre.php";
    $.ajax({ 
        type: "POST",
            url:urlPagePhpAjx,
            data: { destinataire:destinataire },
            async: false,
            dataType: "html",
            success: function(reponse){
               $("#destinataireFeedBack").html(reponse);
         //Le temps des tests :
        alert("success ! " + reponse);
            },
            error:function (xhr, ajaxOptions, thrownError) {
              alert("Error ! \n Status:"+xhr.status + "\n Error:"+thrownError);
            } 
         });
  }else{
    $("#destinataireFeedBack").html('Veuillez inscrire un membre');
  }
 });
});



Et pour le PHP :
<?php 
 include '../connection.php'; 

 $destinataire = isset($_POST['destinataire'])?$_POST['destinataire']:NULL;
 if($destinataire){
  $sql="SELECT *  
     FROM membres 
     WHERE pseudo = '?' ";
 
   try{ 
       $query = $bdd->prepare($sql);
       $query->execute(array($destinataire));
   }catch (PDOException $e) {
       echo 'Erreur ! ' . $e->getMessage();
    }
  $nb = $query->rowCount();
  if ($nb>0) {
   echo 'Ce user est déjà utilisé';
  } else {
   echo 'Ce user est dispo';
  }
 }else{
  echo "Error : Aucun user envoyé en POST...!";
 }
 //Fin
?>
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 16:51
J'ai changé mon fichier verifmembre.php avec ces lignes de code:

<?php 
	include '../connection.php';	
	//Partie pour le jquery
	if(isset($_POST['destinataire']) && !empty($_POST['destinataire'])){
		$destinataire=$_POST['destinataire'];
		$query=$bdd->query('SELECT * FROM membres WHERE pseudo ="'.$destinataire.'" ');
		$rows= $query->rowCount();
		if($rows == 1){
			echo 'Pas dispo';
		} else {
			echo 'Dispo';
		}
	}
?>		


et il renvoie la bonne réponse dans l'alert mais le texte affiché sur la page est toujours "data", une idée ?
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 févr. 2015 à 16:53
Testes ce que je t'ai répondu juste avant
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 19:12
J'ai modifié les pages avec tes lignes de code ainsi que mes span et il n'y a pas de changement ..

Le problème est d'office au niveau de l'ajax, avec mon code on voit une fraction de seconde la réponse de verifpseudo.php et directement après il est de nouveau affiché "data". J'ai à peine le temps de voir si le membre est dispo ou non.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 févr. 2015 à 19:17
Tu as d'autres sript js non ??
Tu en as un qui écrit sûrement dans tes span !
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 19:19
Oui un, mais si c'était le cas je n'aurais pas de problème grace à l'id du span, si ?
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 19:22
Si ... car ton autre code n'écrit surement pas sur un ID précis ... mais sur tous les éléments de la class feedback
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 19:24
Les span de l'autre fichier sont tous de class ="error", ca ne change rien ?
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
28 févr. 2015 à 19:33
Le souci ne se trouve pas au niveau des éléménts de class ERROR ... mais feedback .....
... dans le code de ta page (et uniquement là ! ) modifie cette ligne :
   <td><label for="destinataire">Destinataire</label>: </td><span id="destinataireFeedBack"  class="feedback"></span>

par :
   <td><label for="destinataireFeedBack">Destinataire</label>: </td><span id="destinataireFeedBack"  class="feedback_2"></span>

... testes à nouveau ton code... et regardes ce que ça donne
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
1 mars 2015 à 08:35
Tu avais effectivement raison, ce sont les span de mon autre classe qui posent problèmes. J'ai modifié le nom du chemin d'acces de mon autre fichier js et je n'ai plus de problème donc je vais mettre des id partout. Merci pour ta patience Jordane45 !
0
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
2 mars 2015 à 10:37
Bonjour Aymeric,
ravi que tu aies pu résoudre ton problème.
N'oublie pas de marqué "résolu" dans ce cas (je l'ai fait pour cette fois).
0