繁体   English   中英

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

[英]How to POST jQuery variables to PHP in same page?

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

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

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

PHP文件如下(test.php)。

<?php 
    $country = $_POST['userCountry'];
    $ip = $_POST['userIp'];

    echo $country;
    echo $ip;
?>

<html>
<head><title></title>
    <script src = "jquery.min.js"></script>
    <script>
        $.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}
            });
        });
    </script>
</head>
<body></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>

试试这个代码。 刚测试好

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

(已编辑)

<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 或 $.ajax... 只有 $getJSON。

那是因为 PHP 在服务器上编译,而 jQuery 在客户端编译。 您将两者保存在同一个文件中。 所以当 ajax 运行时,PHP 已经被编译,因此给你消息 undefined 。 为 PHP 部分创建一个单独的文件或使用isset()并在提交数据后使用 jQuery 刷新页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM