Bonjour,
Voilà le topo. J'ai un petit script qui récupère le nom de l'utilisateur (champ playerName) ainsi que son score (scoreFinal). Quand on clique sur le bouton, il lance la fonction savePlayer() qui créé la requête Ajax vers le fichier playerSave.php, qui l'exécute.
Je ne comprends pas là où ça bugue, qu'est-ce qui m'échappe ?
code HTML :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div id='saveResult'> <input type='text' id='playerName' placeholder='Votre pseudo' pattern='[a-zA-Z0-9]+' maxlength='12'> <button onclick='savePlayer()'>OK</button> <div id='saveResultMsg'></div></div>
script Javascript :
playerSave.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 function savePlayer() { var playerName = document.getElementById('playerName').value; var scoreFinal = Number(document.getElementById('scoreFinal').innerHTML); var data = {playerName: playerName, score: scoreFinal}; $.ajax({ type: 'POST', url: 'includes/playerSave.php', data: data, dataType: 'json', timeout: 3000, success: function(data) { $('#saveResultMsg').html('<div class="alert-success" style="font-size: small;">Merci</div>'); }, error: function() { $('#saveResultMsg').html('<div class="alert-danger" style="font-size: small;">Erreur</div>'); } }); }
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php include('db.class.php'); $bdd = new db(); if($_POST) { $playerName = $_POST['playerName']; $scoreFinal = $_POST['scoreFinal']; $query = $bdd->execute('INSERT INTO OC_top (score, player) VALUES ('.$scoreFinal.', CURDATE(), "'.$playerName.'")'); } ?>
Pour info :
- Les variables playerName et scoreFinal sont correctement récupérées au niveau de la fonction savePlayer()
- La fonction s'exécute bien, mais affiche le message d'erreur ("Erreur").
- Le chemin vers les 2 fichiers .php appelés sont les bons.
- Le nom de la table OC_top et des champs score et player sont les bons.
- Le fichier db.class renvoie à mes fonctions PDO dont celle-ci, qui fonctionne très bien ailleurs sur ma page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function execute($query) { if (!$response = $this->conn->exec($query)) { echo 'PDO::errorInfo():'; echo '<br />'; echo 'error SQL: '.$query; die(); } return $response; }
Partager