在同一页面中访问php中的Javascript变量

时间:2013-11-22 14:09:20

标签: javascript php jsonp

您好我面临着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跨域)中执行类似的任务吗?

任何帮助?

2 个答案:

答案 0 :(得分: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'];

答案 1 :(得分:0)

你可以用AJAX做到这一点。

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

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

在“PHPFile.php”中,您可以通过

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

或者你可以用jquery $ .ajax-&gt;来做到这一点。数据也是。

您可以通过

访问它们
$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