Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在同一页面中将jQuery变量发布到PHP?_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 如何在同一页面中将jQuery变量发布到PHP?

Javascript 如何在同一页面中将jQuery变量发布到PHP?,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我的jQuery代码和PHP代码都在同一个PHP文件中(不是两个单独的文件) 我想将jQuery变量发布到PHP代码中 但在运行PHP文件时,它会显示一些错误(“未定义的索引”) PHP文件如下所示(test.PHP) $.getJSON(“http://freegeoip.net/json/,函数(数据){ var country=data.country\u name; var ip=data.ip; $.ajax({ 方法:“张贴”, url:“test.php”, 数据:{userCo

我的jQuery代码PHP代码都在同一个PHP文件中(不是两个单独的文件)

我想将jQuery变量发布到PHP代码中

但在运行PHP文件时,它会显示一些错误(“未定义的索引”)

PHP文件如下所示(test.PHP)


$.getJSON(“http://freegeoip.net/json/,函数(数据){
var country=data.country\u name;
var ip=data.ip;
$.ajax({
方法:“张贴”,
url:“test.php”,
数据:{userCountry:country,userIp:ip}
});
});

我不确定这是想要的结果…
但看起来是这样。所以试试这个:

(已编辑)



$(文档).ready(函数(){ var国家; var ip; $.getJSON(“http://freegeoip.net/json/,函数(数据){ country=data.country\u name; ip=data.ip; console.log(国家+“”+ip); $(“#结果1”)。追加(国家); $(“#result2”).html(ip); }); });
请注意,这里没有PHP或$.ajax。。。只有$getJSON。


<?php 
if(!empty($_POST)){
    $country = $_POST['userCountry'];
    $ip = $_POST['userIp'];

    echo $country;
    echo $ip;
}
?>

<html>
<head><title></title>
    <script src = "jquery.min.js"></script>
    <script>
        $(document).ready(function(){
        $.getJSON("http://freegeoip.net/json/", function(data) {
            var country = data.country_name;
            var ip = data.ip;
            $.ajax({
                method:"POST",
                url:"test.php",
                data:{userCountry:country, userIp:ip},
                success:function(result){
                    $('body').html(result);
                }

            });
           });
        });
    </script>
</head>
<body></body>
</html>
$(文档).ready(函数(){ $.getJSON(“http://freegeoip.net/json/,函数(数据){ var country=data.country\u name; var ip=data.ip; $.ajax({ 方法:“张贴”, url:“test.php”, 数据:{userCountry:country,userIp:ip}, 成功:功能(结果){ $('body').html(结果); } }); }); });

试试这个代码。刚刚测试过OK,这是因为PHP在服务器上编译,而jQuery在客户端编译。你把它们都放在同一个文件里。因此,当ajax运行时,PHP已经编译完毕,因此会显示未定义的消息。为PHP部件创建一个单独的文件,或者使用
isset()
并在提交数据后使用jQuery刷新页面。

@icecub,
getJSON
的第一个参数是URL,在上面的示例中传递。您的页面URL和在
getJSON
中传递的URL不同。感谢您的快速响应。但是php必须在那里进行进一步的实现。不过,这将在以后有用..好的。。。有了这个,你可以“玩”一点结果,组织,格式等。。。然后将其发送到PHP页面。顺便说一句,谢谢你让我发现这个链接很有用(freegoip)。)谢谢你的快速回复。您的建议将在以后的实施中有所帮助。
<html>
<head><title></title>
    <script src = "https://code.jquery.com/jquery-1.12.0.min.js"></script>

</head>
<body>
<div id="result1"></div>
<br>
<div id="result2"></div>

<script>
$(document).ready(function(){
    var country;
    var ip;

    $.getJSON("http://freegeoip.net/json/", function(data) {
        country = data.country_name;
        ip = data.ip;
        console.log(country+" "+ip);

        $("#result1").append(country);
        $("#result2").html(ip);
    });
});
</script>

</body>
</html>
<?php 
if(!empty($_POST)){
    $country = $_POST['userCountry'];
    $ip = $_POST['userIp'];

    echo $country;
    echo $ip;
}
?>

<html>
<head><title></title>
    <script src = "jquery.min.js"></script>
    <script>
        $(document).ready(function(){
        $.getJSON("http://freegeoip.net/json/", function(data) {
            var country = data.country_name;
            var ip = data.ip;
            $.ajax({
                method:"POST",
                url:"test.php",
                data:{userCountry:country, userIp:ip},
                success:function(result){
                    $('body').html(result);
                }

            });
           });
        });
    </script>
</head>
<body></body>
</html>