[RESOLU] variable qui ne passe pas dans (jquery, post, ajax)

Eléphanteau du PHP | 11 Messages

09 mars 2017, 13:09

Bonjour,
je reviens sur le forum après le dernier message car j'ai un problème avec jquery et ajax.
J'ai un fichier js qui lance deux fonctions, les deux variables sont envoyés à traitementDonnees.php pour mettre à jour une bdd. Je n'ai pas besoin d'un retour d'information, juste insérer la vitesse et l'altitude en créant une ligne à chaque fois dans la bbd toutes les secondes :
$(document).ready(function(){
	function enregistrementVitesse() {
			var vitesse = 20;
			$.ajax({
				url: 'traitementDonnees.php',
				type: 'POST',
				data: 'vitesse='+vitesse
			});
			setTimeout('enregistrementVitesse()', 1000);
	}
	function enregistrementAltitude() {
			var altitude = 20;
			$.ajax({
				url: 'traitementDonnees.php',
				type: 'POST',
				data: 'altitude='+altitude
			});
			setTimeout('enregistrementAltitude()', 1000);
	}
}
Le fichier Php :
<?php
	// Connection à la base de donnée
	function connect() {
	    return new PDO('mysql:host=localhost;dbname=toto', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
	}

	$pdo = connect();
	$vitesse = $_POST['vitesse'];
	$altitude = $_POST['altitude'];
	var_dump($vitesse);
	$sql = 'INSERT INTO avion VALUES ("","","", :vitesse, :altitude)';
	$query = $pdo->prepare($sql);
	$query->bindParam(':vitesse', $vitesse, PDO::PARAM_INT);
	$query->bindParam(':altitude', $altitude, PDO::PARAM_INT);
	$query->execute();
	/*$list = $query->fetchAll();
	foreach ($list as $rs) {
		// On insére les résultats dans une variable
		$nom_fr_fr = str_replace($_POST['keyword'], '<b>'.$_POST['keyword'].'</b>', $rs['nom_fr_fr']);
		// On affiche le résultat dans un li
	    echo '<li class="list-group-item" onclick="set_item(\''.str_replace("'", "\'", $rs['nom_fr_fr']).'\')">'.$nom_fr_fr.'</li>';
	}*/
?>
J'ai cette erreur :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'vitesse' ne peut être vide (null)'

D'avance merci pour l'aide.

Eléphanteau du PHP | 11 Messages

09 mars 2017, 14:59

Pour le message d'erreur, cela venait des champs de la base de donnée.
Je n'ai plus qu'à faire passer la variable.

Eléphanteau du PHP | 11 Messages

09 mars 2017, 16:29

J'avais oublié d'exécuter la fonction....
/*=== Enregistrement des données de vol ===*/
$(document).ready(function(){

//définition de la fonction
function enregistrementVitesse() {
var vitesse = 20;
var altitude = 10;
$.ajax({
url: 'traitementDonnees.php',
type: 'POST',
data: 'vitesse='+vitesse+'&altitude='+altitude
});
setTimeout('enregistrementVitesse()', 1000);
}

//exécution
enregistrementVitesse();

});