Enregistrer 2 variables Javascript dans PHPMyAdmin

Bonjour,

Tout est dans le titre, ce que j'ai fais ne marche pas je ne vois pas mes erreurs pouvais vous m'aider (je suis débutant)? Code :

Javascript :
...

$.ajax({
type: "POST",
url: "Score.php",
data: 'name='+name+'&meilleur='+meilleur,
});

...

PHP :

<?php
require_once: ModelScore.php;

$NomJoueur = $_POST["name"];
$Score = $_POST["meilleur"];
$new = new ModelScore($NomJoueur, $Score);
$new->save();
?>

....

<?php
require_once: Model.php;

class modelScore{

private $NomJoueur;
private $Score;

public function __construct($NomJoueur=NULL, $Score=NULL){
if(!is_null($NomJoueur)&&!is_null($Score)){
$this->NomJoueur = $NomJoueur;
$this->Score = $Score;
}
}

public function save(){
try{
$sql="INSERT INTO score(NomJoueur, Score) VALUES (:NomJoueur, :Score)";
$pre_req=Model::$pdo->prepare($sql);

$values=array(
"NomJoueur" =>$this->NomJoueur,
"Score" =>$this->Score,
);
$pre_req->execute($values);
}catch(Exception $e){
if( Conf::getDebug()){
echo $e->getMessage();
}
else{
echo "Une erreur est survenue :";
}
}
}

?>

.....
Après Model.php marche c'est sûr je l'ai testé sur d'autres projets

Merci d'avance de votre aide

5 réponses

  1. Salut,

    si je me trompe pas, c'est
    method:'POST'

    et non
    type: "POST"


    dans ton appel Ajax.
    Essaye avec ça.. sinon, ajoute du debug partout pour être sûr que tes variables sont bien settées.

    --
    1. ça ne marche pas... Merci de ton aide quand même je vais tester avec les debug
      1. Tu peux aussi regarder dans la console développeur de ton navigateur. Regarde la réponse que tu reçois lorsque tu fais ton appel ajax.
    2. Modérateur
      Bonjour,

      Bonjour,

      Côté Javascript :
      var urlAjx = "Score.php";
      var datas = {name:name
                   ,meilleur:meilleur};
       $.ajax({ 
            type: "POST",
            url: urlAjx,
            data: data,
            async: async,
            dataType: "json",
            success: function(reponse){
              console.log(reponse);
             },
            error:function(jqXHR, textStatus){
               var error = jqXHR.responseText;
               console.log(textStatus + " : " + error);        
              }
           }); 
      


      Fichier Score.php
      <?php
        //affichage des erreurs PHP
        error_reporting(E_ALL);
        ini_set('display-erros','on');
        
        //require/include...
      	require_once "ModelScore.php";
      
        //récupération PROPRE des variables
      	$NomJoueur = !empty($_POST["name"]) ? $_POST["name"] : '';
      	$Score = !empty($_POST["meilleur"]) ? $_POST["meilleur"] : '';
        
      	$new = new modelScore($NomJoueur, $Score); //attention aux majuscules/minuscules .. là c'est la class qu'il faut mettre .. pas le nom du fichier !
      	$result = $new->save();
        
        echo json_encode($result);
      ?>
      


      Fichier ModelScore.php
      <?php 
      require_once "Model.php";
      
      class modelScore{
      
      	private $NomJoueur;
      	private $Score;
      
      	public function __construct($NomJoueur=NULL, $score=NULL){
      		if(!is_null($NomJoueur)&&!is_null($Score)){
      			$this->NomJoueur = $NomJoueur;
      			$this->Score = $score;
      		}
      	}
      
      	public function save(){
      		
      	  $sql="INSERT INTO score(NomJoueur, Score) VALUES (:NomJoueur, :Score)";
          $values=array( ":NomJoueur"=>$this->NomJoueur
      				            ,":Score" =>$this->Score
      				           );
          try{
            $pre_req = Model::$pdo->prepare($sql);
      		  $res = $pre_req->execute($values);
      		}catch(Exception $e){
      				if( Conf::getDebug()){
      					$res = $e->getMessage();
      				}	else{
      					$res = "Une erreur est survenue :";
      				}
      		}
          return $res;
      	}
      
      ?>
      

      1. Bonjour,

        désolé de ma réponse tardive, j'ai un probleme, j'ai essayé avec ta solution mais au niveau du php il me retourne une erreur que j'ai pas réussi à régler : parsererror as tu une solution ?

        Merci
        1. Modérateur
          parserror .. quoi ? à quelle ligne ?
          Il faut le message d'erreur complet sinon je ne pourrais pas t'aider
      2. Contributeur
        De façon générale, il faut que tu apprennes à débuguer ton code.

        Pour le javascript, utilise des outils comme la console de firefox ou chrome, si tu as une erreur, tu pourras y avoir des infos, tu peux également mettre des console.log(var) dans ton code JS pour voir ce qui se passe, ce que contiennent tes variables, etc...
        Dans le cadre d'un appel ajax, tu peux également regarder dans cet outils les transactions réseaux et voir si on appel passe bien, ce qu'il envoie, ce qu'il retourne...

        Ensuite dans ton code PHP, tu peux également mettre des var_dump sur tes variables pour voir ce qui s'y passe.

        Ca, c'est la base, si tu ne le fais pas, tu vas passer ton temps à demander de l'aide sur des forums alors que parfois les réponses sont très simple à trouver quand on regarde d'un peu plus près.

        Bon code.