Javascript 如何在函数中定义全局变量和用例语句?
我想在php中声明两个全局变量,如下所示Javascript 如何在函数中定义全局变量和用例语句?,javascript,php,Javascript,Php,我想在php中声明两个全局变量,如下所示 <?php $a = "Nvalamap"; $b="Bvalamap"; ?> 希望在javascript函数定义的第二个文件中使用这些变量 <script> function drawMapFromWms(latt,longt,complaintid){ $.ajax({ type: "GET", url: "tools/nrega_v2.1/map.php", data: 'comp
<?php
$a = "Nvalamap";
$b="Bvalamap";
?>
希望在javascript函数定义的第二个文件中使用这些变量
<script>
function drawMapFromWms(latt,longt,complaintid){
$.ajax({
type: "GET",
url: "tools/nrega_v2.1/map.php",
data: 'complaintid='+complaintid,
success: function(data){
var data_array = JSON.parse(data);
$('.modal-info').html("");
var hrymap='<div id="hrymap"></div>';
$(".modal-info").append(hrymap);
$('#hrymap').html("");
$('#hrymap').html("<div id='map' style='width:850px;height:650px;'></div>");
var map = L.map('map');
setTimeout(function(){ map.invalidateSize(true)}, 300);
//map.setView([29.0, 76.776695], 8);
map.setView([29.0, 76.776695], 8);
map.fitBounds([
[latt,longt]
]);
L.tileLayer.wms("<?php echo $basemap; ?>", {
layers:'india3',
format: 'image/png',
transparent: true,
attribution:"Indian Remote Sensing Satellites"
//attribution: "Weather data © 2012 IEM Nexrad"
}).addTo(map);
L.tileLayer.wms("<?php echo $roadmap; ?>", {
layers:'hrcm_roads',
format: 'image/png',
transparent: true,
attribution:"text"
}).addTo(map);
var marker = L.marker([latt,longt]).addTo(map).bindPopup('Complaint ID:'+data_array.complaint_id+'</br>Road ID:'+data_array.road_id+'</br>Complainant Name:'+data_array.name+'</br>Complaint Type:'+data_array.feedback_type)
.openPopup();
map.invalidateSize();
$("#detail_content").css({'display':'block'});
}
});
}
/***********second function same but basemap and roadmap is differnt*****/
function drawMapFromWms(latt,longt,complaintid){
$.ajax({
type: "GET",
url: "tools/nrega_v2.1/map.php",
data: 'complaintid='+complaintid,
success: function(data){
var data_array = JSON.parse(data);
$('.modal-info').html("");
var hrymap='<div id="hrymap"></div>';
$(".modal-info").append(hrymap);
$('#hrymap').html("");
$('#hrymap').html("<div id='map' style='width:850px;height:650px;'></div>");
var map;
require([
"esri/map",
"esri/geometry/Point",
"esri/symbols/SimpleMarkerSymbol",
"esri/graphic",
"esri/layers/GraphicsLayer", "esri/layers/ArcGISDynamicMapServiceLayer","esri/layers/ArcGISTiledMapServiceLayer",
"dojo/domReady!"
], function(
Map, Point, SimpleMarkerSymbol, Graphic, GraphicsLayer,ArcGISDynamicMapServiceLayer,ArcGISTiledMapServiceLayer
) {
map = new Map("map", {
basemap: "<?php echo $basemap; ?>",
center: [76.0856,29.0588],
zoom: 10
});
map.on("load", function() {
var gl = new GraphicsLayer();
var p = new Point(76.0856,29.0588);
var s = new SimpleMarkerSymbol().setSize(60);
var g = new Graphic(p, s);
gl.add(g);
map.addLayer(gl);
map.addLayer(new ArcGISDynamicMapServiceLayer('<?php echo $roadmap; ?>'));
});
});
$("#detail_content").css({'display':'block'});
}
});
}
</script>
WMS的函数drawMapFromWms(横向、纵向、平面){
$.ajax({
键入:“获取”,
url:“tools/nrega_v2.1/map.php”,
数据:“complaintid=”+complaintid,
成功:函数(数据){
var data_array=JSON.parse(数据);
$('.modal info').html(“”);
var hrymap='';
$(“.modal info”).append(hrymap);
$('#hrymap').html(“”);
$('#hrymap').html(“”);
var map=L.map('map');
setTimeout(function(){map.invalidateSize(true)},300);
//地图.setView([29.0,76.776695],8);
地图.setView([29.0,76.776695],8);
map.fitbunds([
[拉特,朗特]
]);
L.tileLayer.wms(“{
层:'india3',
格式:'image/png',
透明:是的,
属性:“印度遥感卫星”
//属性:“天气数据©2012 IEM Nexrad”
}).addTo(地图);
L.tileLayer.wms(“{
层:'hrcm_道路',
格式:'image/png',
透明:是的,
属性:“文本”
}).addTo(地图);
var marker=L.marker([latt,lont]).addTo(map).bindpoop('投诉ID:'+数据数组.投诉ID+'道路ID:'+数据数组.道路ID+'投诉人姓名:'+数据数组.姓名+'投诉类型:'+数据数组.反馈类型)
.openPopup();
map.invalidateSize();
$(“#详细内容”).css({'display':'block});
}
});
}
/***********第二个功能相同,但底图和路线图不同*****/
WMS的函数drawMapFromWms(横向、纵向、平面){
$.ajax({
键入:“获取”,
url:“tools/nrega_v2.1/map.php”,
数据:“complaintid=”+complaintid,
成功:函数(数据){
var data_array=JSON.parse(数据);
$('.modal info').html(“”);
var hrymap='';
$(“.modal info”).append(hrymap);
$('#hrymap').html(“”);
$('#hrymap').html(“”);
var映射;
要求([
“esri/map”,
“esri/几何体/点”,
“esri/symbols/SimpleMarkerSymbol”,
“esri/图形”,
“esri/layers/GraphicsLayer”、“esri/layers/ArcGisDynamicMapsServiceLayer”、“esri/layers/ArcGistiledMapsServiceLayer”,
“dojo/domReady!”
],功能(
地图,点,SimpleMarkerSymbol,图形,GraphicsLayer,ArcGisDynamicMapsService,ArcGisTiledMapsService
) {
地图=新地图(“地图”{
底图:“”,
中心:[76.0856,29.0588],
缩放:10
});
map.on(“加载”,函数(){
var gl=new GraphicsLayer();
var p=新点(76.0856,29.0588);
var s=新的SimpleMarkerSymbol().setSize(60);
var g=新图形(p,s);
总帐.增加(g);
地图添加层(gl);
map.addLayer(新的ArcGISDynamicMapServiceLayer(“”));
});
});
$(“#详细内容”).css({'display':'block});
}
});
}
我想要一个onclick=“drawMapFromWms(latt、Lont、complaintid);”函数调用然后它将根据案例参数运行如果$a有一些值,那么第二个案例中的第一个函数调用如果$b有一些值,那么第二个函数调用两个函数都有相同的名称,但工作方式不同您的PHP变量是在服务器端创建的,但Javascript部分是在客户端执行的,因此您需要为客户机提供一种在其范围内访问这些变量的方法。一种方法是在Javascript块中输出
$a
和$b
的值,并将它们分配给窗口
范围(这非常接近全局JS变量)
PHP变量是在服务器端创建的,但Javascript部分是在客户端执行的,因此需要为客户端提供一种在其作用域内访问这些变量的方法。一种方法是在Javascript块中输出
$a
和$b
的值,并将它们分配给窗口
范围(这非常接近全局JS变量)
onclick=“drawMapFromWms(,)我想知道如果drawMapFromWms函数调用,它将根据全局变量的值调用如果$a有值,那么第一个函数调用,否则第二个调用实际上我需要一个带有函数的case语句javascript对php一无所知,反之亦然。这意味着没有办法在javascript中定义case语句?中有switch/case命令Javascript。您尚未提供有关如何完成此操作的真实信息(您提供的信息不正确或不相关)。onclick=“drawMapFromWms(,,);”我想知道如果drawMapFromWms函数调用,它将根据全局变量的值调用如果$a有值,那么第一个函数调用,否则第二个调用实际上我需要一个带有函数的case语句javascript对php一无所知,反之亦然。这意味着没有办法在javascript中定义case语句?中有switch/case命令Javascript。您没有提供您希望如何完成此操作的真实信息(您提供的信息不正确或不相关)。
<script>
window.a = '<?php print $a; ?>';
window.b = '<?php print $b; ?>';
</script>
<script>
window.a = 'Nvalamap';
window.b = 'Bvalamap';
</script>
<script>
function drawMapFromWms(latt,longt,complaintid)
{
if (window.a !== '') {
handlerForVariableA(latt, longt, complaintid);
} else {
handlerForVariableB(latt, longt, complaintid);
}
}
function handlerForVariableA (latt, longt, complaintid)
{
// execute code that is relevant when "$a" was set on the server-side.
}
function handlerForVariableB (latt, longt, complaintid)
{
// execute code that is relevant when "$b" was set on the server-side.
}
</script>