【问题标题】:Access Javascript variable in php in same page在同一页面中访问 php 中的 Javascript 变量
【发布时间】:2013-12-07 10:50:35
【问题描述】:

您好,我遇到了 json 数据的问题。这是我的js代码。

   <script>
    $(function(){
        $.ajax({
         url:"http://example.com/salary?from=USD&to=GBP",
         dataType: 'jsonp', 
         success:function(json){         
             alert(json['to']);
         },
         error:function(){
             alert("Error");
         },
        });
    });
</script>

我想在同一页面中使用 PHP 中的 json 数据。 我知道您不能将 Javascript 值分配给 PHP 变量。

有没有办法做到这一点?

或者是否可以像上面的 javascript 代码一样在 php(Jquery Ajax 跨域)中执行类似的任务?

有什么帮助吗?

【问题讨论】:

  • "或者可以在php中做类似的任务" >当然可以,它只是一个HTTP请求和响应。响应格式为 JSON,但为纯文本。并且 JSON 可以用 PHP 解析。一些谷歌搜索会找到你前进所需的所有资源。
  • 我不明白你的意思。你能用例子更具体吗?你想从 ajax 的 php 结果中检索数组吗?
  • @Bartdude: 我可以使用 file_get_contents('example.com/..') 和之后的 json_decode() 来完成 php 中的类似任务吗?

标签: javascript php jsonp


【解决方案1】:

你的 js 代码

var my_json_obj = new Object();
my_json_obj .name = "Lanny";
my_json_obj .age = "25";
my_json_obj .location = "China";
var json_str = JSON.stringify(my_json_obj);
<script>
    $(function(){
                $.ajax({
                    type: "POST",
                    dataType: "json",
                    url: "my.php",
                    data: { 
                     postData: json_str 
                    },
                    success: function (data) { alert(data) },
                    eror: function (data) { alert(data) }
                });
    });
</script>

你的 my.php 文件

$postData=$_POST['postData'];
$my_obj=json_decode($postData,true);
$name=$my_obj['name'];
$age=$my_obj['age'];
$localtion=$my_obj['location'];

【讨论】:

    【解决方案2】:

    您可以使用 AJAX 做到这一点。

    您需要一个脚本,它将为 PHP 脚本提供 javascript 变量,例如:

    var PHPFile = 'PHPFile.php?arg1=' + arg1 + '&arg2=' + arg2;
    

    在“PHPFile.php”中你可以通过

    $arg1 = $_GET["arg1"];
    $arg2 = $_GET["arg2"];
    

    或者您也可以使用 jquery $.ajax-> 数据来做到这一点。

    您可以通过

    访问它们
    $arg1 = $_POST["arg1"];
    $arg2 = $_POST["arg2"];
    

    类似的东西:

    result = $.ajax({
        type: 'POST',
        async: false, 
        url: 'PHPFile.php',
        data: ({
            arg1: arg1,
            arg2: arg2
        })
    }).responseText;
    
    alert(result);
    

    编辑:

    如果您想使用 json-object 执行此操作,请尝试以下操作:

    json_decode();
    

    http://www.php.net/manual/en/function.json-decode.php

    http://www.php.net/manual/en/function.json-encode.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2023-04-02
      • 2014-10-11
      • 2017-10-31
      • 2011-12-15
      相关资源
      最近更新 更多