如何使用ajax从jquery中的php访问变量(这里我使用的是Json)
我是jquery、ajax的新手。。。。php文件中的值是通过json_encode返回的。 我的问题是我不知道如何访问这些数据 这里是代码。。。。。。 js代码如何使用ajax从jquery中的php访问变量(这里我使用的是Json),php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我是jquery、ajax的新手。。。。php文件中的值是通过json_encode返回的。 我的问题是我不知道如何访问这些数据 这里是代码。。。。。。 js代码 <script> $(document).ready(function(){ setInterval(ajaxcall, 1000); }); var devid=1; function ajaxcall(){ devid++; //alert(devid); $.ajax(
<script>
$(document).ready(function(){
setInterval(ajaxcall, 1000);
});
var devid=1;
function ajaxcall(){
devid++;
//alert(devid);
$.ajax(
{
url: 'gettime.php',
data:{devid:devid},
success: function(data)
{
//data = data.split(',');
data1 = data.a;
data2 = data.b;
var latlng = new google.maps.LatLng(data1, data2);
//alert(data.lat);
var options = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), options);
}
});
}
</script>
$(文档).ready(函数(){
设置间隔(ajaxcall,1000);
});
var-devid=1;
函数ajaxcall(){
devid++;
//警报(devid);
$.ajax(
{
url:'gettime.php',
数据:{devid:devid},
成功:功能(数据)
{
//data=data.split(',');
data1=data.a;
data2=data.b;
var latlng=新的google.maps.latlng(数据1,数据2);
//警报(data.lat);
变量选项={
缩放:14,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById('map_canvas'),选项);
}
});
}
php文件(gettime.php)
在您的ajax
调用数据类型中,
缺失
$.ajax(
{
url: 'gettime.php',
data:{devid:devid},
dataType: "json",
....................
})
在您的ajax
调用数据类型中,缺少了“
”
$.ajax(
{
url: 'gettime.php',
data:{devid:devid},
dataType: "json",
....................
})
默认情况下,ajax调用中缺少dataType属性。php脚本以文本/xml格式返回数据。为了更改默认行为,必须指定正确的格式,即json,以便ajax调用
ajax
$.ajax(
{
})
php
$vvid = $_REQUEST['devid'];
echo $vvid;
$sql= mysql_query("select * from maploca where id='$vvid'");
$sqlqry = mysql_fetch_array($sql);
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['latitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
默认情况下,ajax调用中缺少dataType属性。php脚本以文本/xml格式返回数据。为了更改默认行为,必须指定正确的格式,即json,以便ajax调用
ajax
$.ajax(
{
})
php
$vvid = $_REQUEST['devid'];
echo $vvid;
$sql= mysql_query("select * from maploca where id='$vvid'");
$sqlqry = mysql_fetch_array($sql);
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['latitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
据我所知,你的代码应该可以正常工作。除了在gettime.php
中可能有问题之外。我在那里没有看到mysql\u connect
代码,所以您的查询可能无法执行
另一个可能的问题是:
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['latitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
你在两次使用纬度,我猜应该是这样的:
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['longitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
无论如何,请检查您的PHP错误日志。可能您会在那里发现一些错误(如果您确实缺少mysql\u-connect
code,您肯定会找到它)
另外-学习如何使用开发人员工具/firebug。它将在调试JS方面帮助您很多
编辑
请记住,脚本必须只返回json代码。如果响应中有一些垃圾(如html代码),浏览器将无法解析响应,您将在success函数的数据中得到错误或简单字符串(而不是object)。据我所知,您的代码应该可以正常工作。除了在gettime.php
中可能有问题之外。我在那里没有看到mysql\u connect
代码,所以您的查询可能无法执行
另一个可能的问题是:
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['latitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
你在两次使用纬度,我猜应该是这样的:
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['longitude'];
echo json_encode(array("a" => $var1, "b" => $var2));
无论如何,请检查您的PHP错误日志。可能您会在那里发现一些错误(如果您确实缺少mysql\u-connect
code,您肯定会找到它)
另外-学习如何使用开发人员工具/firebug。它将在调试JS方面帮助您很多
编辑
请记住,脚本必须只返回json代码。如果响应中有一些垃圾(如html代码),浏览器将无法解析响应,您将在success函数的数据中得到错误或简单字符串(而不是object)。问题最终解决,代码将
<script>
$(document).ready(function()
{
setInterval(ajaxcall, 1000);
});
var devid = 1;
function ajaxcall()
{
devid++;
var veh = <?php echo $veh?>
//alert(devid);
$.ajax({
url: 'gettime.php?devid='+devid+'&veh='+veh,
success: function(data)
{
var datasep = data.split(',');
/*if(datasep2!=null && datasec2!=null)
{*/
var datasep1 = datasep[0].split(':');
var datasep2 = datasep1[1].replace('"','');
datasep2 = datasep2.replace('"','');
var datasec1 = datasep[1].split(':');
var datasec2 = datasec1[1].replace('"}','');
datasec2 = datasec2.replace('"','');
//alert(datasep2);
var json = [
{ "lat":datasep2,
"lng":datasec2 }]
var latlng = new google.maps.LatLng(datasep2,datasec2);
var myOptions = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polylineCoordinates = [
new google.maps.LatLng(datasep2,datasec2)];
var polyline = new google.maps.Polyline({
path: polylineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
editable: true
});
polyline.setMap(map);
for (var i = 0, length = json.length; i < length; i++)
{
var data = json[i],
latLng = new google.maps.LatLng(data.lat, data.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
/*}
else
{
datasem1 = datasep[0].split(':');
datasem2 = datasem1[1].replace('"','');
datasem2 = datasem2.replace('"','');
alert(datasem2);
} */
}
});
}
</script>
<?php //ob_start();
include "../../config/connection.php";
// header("Content-Type: application/javascript");
//header('Content-Type: application/json');
$vvid = $_REQUEST['devid'];
$veh = $_REQUEST['veh'];
if($vvid!='')
{
$sql= mysql_query("select * from maploca where id='$vvid' and veh_id='$veh'") or die(mysql_error());
$sqlqry = mysql_fetch_array($sql) or die(mysql_error());
$var1 = $sqlqry['latitude'];
$var2 = $sqlqry['longitude'];
echo json_encode(array('a' => $var1, 'b' => $var2));
}
else
{
echo "Empty Value";
}
//echo $_GET['callback'] . "([" . implode(",", $ll) . "]);";*/
?>
$(文档).ready(函数()
{
设置间隔(ajaxcall,1000);
});
var-devid=1;
函数ajaxcall()
{
devid++;
var veh=
//警报(devid);
$.ajax({
url:'gettime.php?devid='+devid+'&veh='+veh,
成功:功能(数据)
{
var datasep=data.split(',');
/*if(datasep2!=null&&datasec2!=null)
{*/
var datasep1=datasep[0]。拆分(“:”);
var datasep2=datasep1[1]。替换(“,”);
datasep2=datasep2.replace(“,”);
var datasec1=datasep[1]。拆分(“:”);
var datasec2=datasec1[1]。替换(''''}','';
datasec2=datasec2.replace(“,”);
//警报(数据SEP2);
var json=[
{“lat”:datasep2,
“液化天然气”:数据集2}]
var latlng=新的google.maps.latlng(datasep2,datasec2);
变量myOptions={
缩放:18,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
变量多段线坐标=[
新的google.maps.LatLng(datasep2,datasec2)];
var polyline=新的google.maps.polyline({
路径:多段线坐标,
strokeColor:“#FF0000”,
笔划不透明度:1.0,
冲程重量:2,
可编辑:真
});
多段线.setMap(map);
for(var i=0,length=json.length;i