Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在函数中定义全局变量和用例语句?_Javascript_Php - Fatal编程技术网

Javascript 如何在函数中定义全局变量和用例语句?

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中声明两个全局变量,如下所示

<?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>