Comment puis-je envoyer des données JSON depuis Javascript dans le navigateur, vers un serveur et les faire analyser par PHP ?
Réponse
Trop de publicités?
OatMs
Points
3
J'ai trouvé un moyen facile de le faire mais je sais que ce n'est pas parfait.
1.affecter json à
si votre JSON est
var data = [
{key:1,n: "Eve"}
,{key:2,n:"Mom"}
];
dans ---main.php ----
<form action="second.php" method="get" >
<input name="data" type="text" id="data" style="display:none" >
<input id="submit" type="submit" style="display:none" >
</form>
<script>
var data = [
{key:1,n: "Eve"}
,{key:2,n:"Mom"} ];
function setInput(data){
var input = document.getElementById('data');
input.value = JSON.stringify(data);
var submit =document.getElementById('submit');
//to submit and goto second page
submit.click();
}
//call function
setInput(data);
</script>
dans ------ second.php -----
<script>
printJson();
function printJson(){
var data = getUrlVars()["data"];
//decode uri to normal character
data = decodeURI(data);
//for special character , / ? : @ & = + $ #
data = decodeURIComponent(data);
//remove " ' " at first and last in string before parse string to JSON
data = data.slice(1,-1);
data = JSON.parse(data);
alert(JSON.stringify(data));
}
//read get variable form url
//credit http://papermashup.com/read-url-get-variables-withjavascript/
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>
- Réponses précédentes
- Plus de réponses
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 :(