Passer une variable JS vers PHP

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjour, j'ai crée un petit code qui ne fonctionne malheuresement pas. J'ai tout essayé mais je ne saisis pas le problème.

console.log(donneeClient); retourne parfaitement les données mais pas xhr.send(donneeClient).

Dans index.php se trouve un INSERT INTO qui fonctionne quand ce script est exécuté mais $_POST['donnees'] reste desesperement vide.


Code:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();

var donneeClient = "donnees="+entry.subject ;

xhr.open('POST', '/index.php');

xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
        console.log('OK');
    }
};

xhr.send(donneeClient);

console.log(donneeClient);

Si quelqu'un a une solution je le remercie d'avance
 
WRInaute impliqué
Voila ce qui se trouve dans index.php :

PHP:
$pdo->query("INSERT INTO test (title, price, description) VALUES ('".$_POST['donnees']."', '10000', 'description')");

lorsque le petit script JS que j'ai posté ci dessous est en action, index.php est bien appelé est le INSERT INTO fonctionne correctement SAUF que $_POST['donnees'] reste toujours vide !

Pourtant il n'est pas NULL car dans le script JS
console.log(donneeClient); retourne bien les données c'est ca qui est incompréhensible.
 
WRInaute impliqué
Finalement j'ai réglé le problème. Une petite erreur de code JS. Voila la solution :

Code:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();

var donneeClient = "donnees="+entry.subject ;


xhr.open('POST', '/index.php', true);

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function() {//Call a function when the state changes.
    if(this.readyState == XMLHttpRequest.DONE && this.status == 200) {
        console.log('OK');
    }
}

xhr.send(donneeClient);

console.log(donneeClient);

Merci tout de meme
 
WRInaute accro
Attention à la faille d'injection SQL, je vois que tu utilises PDO alors pourquoi faire l'impasse sur les requêtes préparées.
 
WRInaute impliqué
En effet ! Par contre je me retrouve avec un autre problème que je n'arrive pas à résoudre.

Voici le code en question :

Code:
search.run().then(function (data) {
 
    console.log(data.results);
    
    var XMLHttpRequest = require("../node_modules/leboncoin-api/node_modules/xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();

var title = "title=test" ;
var description = "description="+data.results ;

xhr.open('POST', '/index.php', true);

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function() {//Call a function when the state changes.
    if(this.readyState == XMLHttpRequest.DONE && this.status == 200) {
        console.log('OK');
    }
}

xhr.send(title+"&"+description);

    

    
}

la variable description devient [object Object],[object Object],[object Object],[object Object]..
lorsque je l'envoi et l'enregistre dans dans mysql via ma requete. un console.log affiche pourtant les données correctement.

As tu une solution pour envoyer correctement les données dans mysql ?
 
Discussions similaires
Haut