为了账号安全,请及时绑定邮箱和手机立即绑定

我可以使用 JSON.parse() 在使用 PHP 全局变量(如 ($_GET, $_POST)

我可以使用 JSON.parse() 在使用 PHP 全局变量(如 ($_GET, $_POST)

PHP
慕勒3428872 2022-01-02 16:32:40
我想使用 PHP $_GET 方法直接获取 javascript 变量中的数据,然后将数据解析为 json 对象。我可以使用 PHP 获取它,然后将其转换为字符串,但它没有为我提供类似 JSON 的结构。我得到的只是一个连续的字符串。我已经在 PHP 中使用 json_decode 转换了数据并将其转换为单个字符串,然后将该字符串传递给 JS 变量。<?php$json = json_decode($_GET['data'], true );$val = "";foreach ($json as $key => $value) {    echo $key . " : ";    $arr = $value;    foreach ($arr as $key => $v) {        echo $v . " ";        $val .= $v . " | ";    }    echo "<br>";}?><script type="text/javascript">var l = "<?= $val ?>";console.log(l); // This is a stringvar json = "<?php echo $_GET['data'] ?>"; // Error Codevar jd = json.parse(json);</script>SyntaxError:意外令牌:标识符 // 我收到此错误
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

切勿将 PHP 与 JavaScript 混合使用。


如前所述,您应该使用 Ajax 来执行此操作。然后,您可以根据需要将结果应用到 JavaScript 变量中。


<script>

var result = '';


$.ajax({

    url: 'parse_url.php',

    type: "POST", //request type,

    dataType: 'json',

    data: {},

    success:function(json){

        result = json;

    },

    error: function(a) {

        console.log(a);

    }

});


console.log(result);

</script>

parse_url.php


die(json_encode($_GET));


查看完整回答
反对 回复 2022-01-02
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您应该将 JSON 放在单引号中,因为双引号用于 JSON 表示本身。


var json = '<?php echo $_GET['data'] ?>';

var jd = JSON.parse(json);

但是真的没有必要使用JSON.parse. JSON 本身是 JavaScript 文字的正确格式,所以你可以这样写:


var jd = <?php echo $_GET['data'] ?>;

但是,将 URL 参数直接插入到 JavaScript 中是一个坏主意,因为它们可能会发送不只是 JSON 的内容。所以你应该使用json_encode()从 PHP 重新生成对象:


var jd = <?php echo json_encode($json); ?>;


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信