2016-07-03 79 views
0

两个的jQuery代码PHP代码在同一个PHP文件(不是两个单独的文件)如何在相同页面中将jQuery变量发布到PHP?

我想将jQuery变量POST到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> 
+0

@icecub,getJSON的第一个参数是上面例子中传递的URL。 – Rayon

+0

你的页面的URL和'getJSON'中传递的是不同的.. – Rayon

回答

5
<?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> 

试试看看这个代码。刚刚测试好

+0

它的工作原理..非常感谢你! – AnushkaM

0

我不知道这是通缉的结果...
但它看起来像它。所以,试试这个:

(编者)

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

+0

感谢您的快速回复。但PHP必须在那里进一步实现。然而,这将在稍后有用.. – AnushkaM

+0

好吧...有了这个,你可以“结果”,组织,格式等“玩”一下...然后将其发送到PHP页面。顺便说一句,感谢让我发现有用的这个链接(freegeoip)。 ;) –

0

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

+0

感谢您的快速回复。您的建议将在以后的实施中有所帮助。 – AnushkaM

相关问题