$ .get将json_encode php数组返回给javascript

时间:2014-01-17 03:18:01

标签: javascript php jquery

我想从php文件中将php数组加载到javascript文件中的javascript数组中。

最初,我只是在php文件中执行var wordsArray = <?php echo json_encode($wordsArray) ?>;来获取它,但现在我已将所有Javascript函数都放在.js文件中,该文件无法运行PHP。是否有可以返回php数组的$.get函数?

类似的东西:

JavaScript:Utilities.js文件

$.get("php/Quests.php", {},
    function(returned_data) {
        var wordsArray = returned_data;
    }
);  

PHP:Quests.php文件

<?php       
    include 'DbConnect.php';
    $sql = $mysqli->query(
     "SELECT t.*, v.* 
     FROM task t 
     INNER JOIN vocabtask vt ON (t.id = vt.taskid)
     INNER JOIN vocab v ON (v.id = vt.vocabid)
     WHERE vt.taskid = 1");
    $wordsArray = array();               
    while ($row = $sql->fetch_assoc()) {
        $wordsArray[$row['chinese']] = $row['english'];
    }
    mysqli_close($mysqli);  

   //return php array as json_encoded to js file through get function
    echo json_encode($wordsArray);  

?>

编辑:

或者代替$ .get,我尝试在PHP文件上执行此操作:

echo "<script type='text/javascript'> var wordsArray =json_encode($wordsArray); </script>";

然后在JS中执行:

alert(wordsArray[1]);

这样的事情会起作用吗?

2 个答案:

答案 0 :(得分:1)

try this.

echo "<script type='text/javascript'> var wordsArray = " . json_encode($wordsArray) . ";
    //this will output the contents of wordsArray into the console
     console.dir(wordsArray);

     // check the console. f12 or ctrl+shift+k
 </script>";

答案 1 :(得分:1)

如果您的PHP返回JSON编码的数据,您可以使用JSON.parse在Javascript中解析它:

function(returned_data) {
  returned_data = JSON.parse(returned_data);
}

returned_data现在将是一个JSON对象,而不是原始字符串。