Question ajax json php

Résolu
leandro95 Messages postés 82 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour,


J'aimera savoir comment fait-on pour transmettre un variable json (d'un script javascript) qui est retourné lors d'un appel à la fonction $.ajax() ,dans une variable php dans la fonction success, et aussi comment la sauvegarder juste avant en un fichier d'extension .json:

exemple:

val1="....";
$.ajax({
url : 'http://localhost/Project/test.php',
type : 'GET',
data : 'var='+val1,
dataType:'json',

success : function(resultat,statut){

},
});
test retourne un tableau json (echo json_encode($t);)
je ne vois pas du tout comment faire.


j'ai essayé de faire çeci mais sans succès:


$resol='<script type="text/javascript">document.write(""+resultat);</script>';
echo json_decode($resol);
A voir également:

2 réponses

Mihawk Messages postés 4753 Statut Contributeur 846
 
Hello,

Javascript n'as pas les droits d'écriture sur le disque dur de ton ordinateur. Tout au mieux tu pourrais afficher le résultat JSON dans la page web, par exemple en faisant :

success : function(resultat,statut){
$('body').text(resultat);
},


Amicalement,
Pierre.
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,

Le Javascript s'éxecute côté CLIENT contrairement au PHP qui lui se lance côté SERVEUR.
Tu ne peux pas "transmettre" directement de variable au PHP depuis du Javascript sauf par le biais de l'AJAX.

Rien ne t'empèche de refaire un AJAX dans le success de ton ajax précédent...
success : function(resultat,statut){
        $('body').text(resultat);
        $.ajax({
            url : 'http://localhost/Project/test2.php',
            type : 'post',
            data : 'resultat='+resultat, 
            dataType:'json',
            success : function(data,statut){
                alert(data);
             },
           });
     },



comment la sauvegarder juste avant en un fichier d'extension .json

Si tu veux sauvegarder sur le poste de l'utilisateur... tu ne peux pas.
Par contre, si tu veux créer le fichier sur ton serveur.. là avec PHP tu peux.
Via l'instruction fwrite par exemple.
ou via : https://www.php.net/manual/fr/function.file-put-contents.php file-put-contents .

Personnellement.... dans ta page test.php .. je ferais :
1 - La récupération de tes variables
2 - L'enregistrement dans le fichier sur le serveur

et dans ton script JS .. Que l'affichage sur la page (comme te l'a proposé Mihawk )

0
leandro95 Messages postés 82 Statut Membre
 
J'ai un autre problème je cherche à utiliser file_gets_content() en local (pour des tests):

<?php
 $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
 echo json_encode($arr);
 header('Content-Type: application/json;');
?>



<?php
$json = file_get_contents('http://localhost/projet/test/index.php');
echo $json;
var_dump(json_decode($json,true));

?>



Celà affiche bien $json (?{"a":1,"b":2,"c":3,"d":4,"e":5}) mais pas le var_dump; j'ai essayé de mettre $json entre guillemets simples mais ça ne marche pas quand même.
0
jordane45 Messages postés 40050 Statut Modérateur 4 757 > leandro95 Messages postés 82 Statut Membre
 
Bonsoir,
J'ai un autre problème

Nouvelle question = ouverture d'une nouvelle discussion sur le forum.

PS: Lorsque tu postes du code.. merci d'utiliser les BALISES DE CODE.( en y précisant le langage...)
Explications disponibles ici :https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0