Comment puis-je envoyer des données JSON depuis Javascript dans le navigateur, vers un serveur et les faire analyser par PHP ?
Réponses
Trop de publicités?Il existe trois façons d'envoyer des données du côté client (HTML, Javascript, Vbscript ...etc) au côté serveur (PHP, ASP, JSP ...etc).
1. HTML form Posting Request (GET or POST).
2. AJAX (This also comes under GET and POST)
3. Cookie
Demande d'affichage du formulaire HTML (GET ou POST)
C'est la méthode la plus couramment utilisée, et nous pouvons envoyer plus de données par cette méthode.
AJAX
Il s'agit d'une méthode asynchrone qui doit fonctionner de manière sécurisée. Ici aussi, nous pouvons envoyer plus de données.
Cookie
C'est une bonne façon d'utiliser une petite quantité de données insensibles. C'est la meilleure façon de travailler avec un petit nombre de données.
Dans votre cas, vous pouvez préférer le formulaire HTML post ou AJAX. Mais avant d'envoyer au serveur, validez votre json par vous-même ou utilisez un lien tel que http://jsonlint.com/
Si vous avez un objet Json, convertissez-le en chaîne en utilisant JSON.stringify(object). Si vous avez une chaîne JSON, envoyez-la telle quelle.
En utilisant JSON.stringify(yourObj) ou Object.toJSON(yourObj) la dernière est pour utiliser prototype.js, puis l'envoyer en utilisant ce que vous voulez, ajax ou submit, et vous utilisez, comme suggéré, json_decode ( http://www.php.net/manual/en/function.json-decode.php ) pour l'analyser en php. Et ensuite, vous pouvez l'utiliser comme un tableau.
Je recommande le jquery.post() méthode.
Vous pouvez facilement convertir un objet en chaîne de caractères urlencodée :
function objToUrlEncode(obj, keys) {
let str = "";
keys = keys || [];
for (let key in obj) {
keys.push(key);
if (typeof (obj[key]) === 'object') {
str += objToUrlEncode(obj[key], keys);
} else {
for (let i in keys) {
if (i == 0) str += keys[0];
else str += `[${keys[i]}]`
}
str += `=${obj[key]}&`;
keys.pop();
}
}
return str;
}
console.log(objToUrlEncode({ key: 'value', obj: { obj_key: 'obj_value' } }));
// key=value&obj[obj_key]=obj_value&
1 votes
Json_decode pourrait être ce que vous recherchez ?
1 votes
Ceci vous aidera : [envoyer des données json depuis javascript] [1] [1] : stackoverflow.com/questions/1255948/
0 votes
Cela pourrait vous aider stackoverflow.com/
1 votes
Salut à tous, merci pour les réponses. En fait, j'ai aussi une solution complète. Je voulais la poster sur ce site parce que je viens ici tout le temps pour des informations et je voulais enfin fournir des informations. Mais je viens de créer mon compte, et il ne me permet pas de poster la réponse avant 8 heures :(