我的 jQuery 代码和 PHP 代码在同一个PHP文件中 (不是两个单独的文件)。
我想将jQuery Variable发布到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 :(得分: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>
试试这段代码。刚刚测试好了
答案 1 :(得分:0)
我不确定这是想要的结果......
但它看起来像。所以试试这个:
(适用EDITED)强>
<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。
答案 2 :(得分:0)
那是因为PHP在服务器上编译而jQuery在客户端编译。你把它们放在同一个文件里。因此,当ajax运行时,PHP已经被编译,从而为您提供未定义的消息。为PHP部分创建一个单独的文件或使用isset()
,并在提交数据后使用jQuery刷新页面。