2009-05-21 9 views
0

Est-ce que quelqu'un sait comment je peux retourner la variable javascript à ajax au lieu de la valeur de chaîne pendant que j'utilise ajax pour appeler le php. S'il vous plaît voir exemple ci-dessous pour plus de détails:Comment retourner une variable javascript à Ajax?

Ajax:

//Ajax Param 
    var paramList = "Action=make_process"; 

    ajaxRequest = $.ajax({ 
      url: "admin.php", 
      type: 'POST', 
      data: paramList, 
      error: function(){ 
        //error message here 
      }, 
      success: function(data){ 
       //read return javascript variable here; 
      } 
     }); 

PHP:

public function validationChk() 
    { 
     $error_msg['error_msg'][] = array("msg"=>"hello"); 
      $error_msg['error_msg'][] = array("msg"=>"hi"); 

     echo "var ErrorMapping = " . json_encode($error_msg). ";\n\n";   
     exit; 
    } 

Répondre

1

Vous vous demandez comment vous pouvez revenir d'une réponse AJAX?

Vérifier alors this jQuery FAQ answer.

+0

Je me demande comment je peux passer 'var ErrorMapping' de php à ajax en tant que variable au lieu de la chaîne –

0

Qu'est-ce que vous essayez de faire est pas terrible d'une idée. Ce que vous voulez probablement est de décoder la réponse JSON dans un objet depuis votre succès de rappel, puis retournez que.

Le décodage de la chaîne JSON implique de l'acheminer via eval et d'espérer que vous n'avez pas de données mauvaises/malveillantes. Le moyen le plus sûr de le faire est d'analyser le JSON en Javascript. Si vous avez pour faire ce parcours par vous même, essayez au moins d'utiliser quelque chose déjà écrit. Recherche Google Code pour "json-sans-eval".

La meilleure option serait d'utiliser les fonctionnalités intégrées de jQuery:

jQuery.getJSON(url, [data], [callback]) 

Il fait tous les trucs dur pour vous. Prenez le temps de lire les documents de jQuery. Il y a beaucoup de choses utiles là-bas.

+0

noter que getJSON() de jQuery utilise eval() pour décoder JSON. – Javier

+0

Je n'étais pas au courant de cela. À la lumière de ce fait, assurez-vous simplement que vos données ne sont absolument pas entachées. –

Questions connexes