[英]How can i access a dynamically changing variable in php page to other html page using jquery ajax method?
[英]how to access variable from php in jquery using ajax(here i am using Json)
我是jquery,ajax的新手。...來自php文件的值通過json_encode返回。 我的問題是在這里,我不知道如何訪問這些數據。
這里的代碼... js代碼...
<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>
php文件(gettime.php)
<?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: "json",
丟失了
$.ajax(
{
url: 'gettime.php',
data:{devid:devid},
dataType: "json",
....................
})
據我所知,您的代碼應該可以正常工作。 除了您可能在gettime.php
遇到問題之外。 我在那里看不到mysql_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_connect
代碼,則可以找到它)
另外-了解如何使用開發者工具/螢火蟲。 它將對調試JS有很大幫助。
編輯
請記住,您的腳本必須僅返回json代碼。 如果響應中會有一些垃圾(如html代碼),則瀏覽器將無法解析響應,並且您將在成功函數的data
中得到錯誤或簡單字符串(而不是對象)。
默認情況下,您缺少ajax調用中的dataType屬性php腳本以text / xml格式返回數據,以便更改默認行為,您必須指定正確的json格式,因此您的ajax調用應為
阿賈克斯
$ .ajax({
url: 'gettime.php',
data:{devid:devid},
dataType: "json",
type:post
})
的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));
終於問題解決了,代碼會...
<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代碼將是...。
<?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) . "]);";*/
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.