2009-12-31 7 views
1

Je voudrais envoyer des données en utilisant l'API jQuery Ajax:Obtenir des données JSON de l'appel jQuery AJAX sur une page PHP

var myData = {"param1" : $('#txtParam1').val(), "param2" : $('#txtParam2').val()}; 

$.ajax({ 
    url: 'DataService.php?action=SomeAction', 
    type: 'POST', 
    data: myData, 
    dataType: 'json', 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
    alert(result.Result);} 
}); 

Quand j'ai essayé de récupérer ces données avec PHP en utilisant

$param1 = $_REQUEST['param1']; 

$param1 montre null et print_r($_REQUEST) montre seulement l'action = SomeAction ..

Comment puis-je récupérer les données publiées sur une page PHP?

+0

ici est publié des données (vu en utilisant la console FireBug) param1 = somevalue1 & param2 = somevalue2 –

+0

sur DEMANDE ... http://thephpcode.blogspot.com/2008/09/request-security-problem.html – mauris

Répondre

2

Essayez ceci:

$params = json_decode($_POST['param1']); 

Et puis vérifier ce que vous avez:

var_export($params); 

Ou vous pouvez utiliser une boucle foreach:

foreach($params as $param) 
{ 
    echo $param . '<br />'; 
} 

Vous utilisez POST, méthode , n'utilisez pas REQUEST car il est également moins sécurisé.

+0

Sarfraz son ne fonctionne pas .. Have tu as essayé à tes côtés? –

+0

@Nav Ali: essayez de supprimer le dataType: ligne 'json' de votre code, puis voir. – Sarfraz

+0

peut obtenir les données lorsque j'ai supprimé le type de contenu –

0

Essayez d'utiliser

$param1 = $_POST['param1']; 
3

puisque vous émettez la ajax comme "contentType: 'application/json'", vous devez chercher le corps de la requête avec php://input comme ceci:

$request = file_get_contents("php://input"); // gets the raw data 
$params = json_decode($request,true); // true for return as array 
print_r($params); 
Questions connexes