Javascript 如何在同一页面中将jQuery变量发布到PHP?
我的jQuery代码和PHP代码都在同一个PHP文件中(不是两个单独的文件) 我想将jQuery变量发布到PHP代码中 但在运行PHP文件时,它会显示一些错误(“未定义的索引”) PHP文件如下所示(test.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
$.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>