如何在 PHP 里面的 Javascript 里面输入 PHP

How to input PHP inside Javascript that is inside PHP

我的问题有点,说是原创吧,我承认。尽管如此,它开始困扰我。我有一个需要生成 Javascript 的 PHP 程序,您可能会说没有什么原创性。

我同意,但碰巧生成的 Javascript 需要使用 PHP 变量,当我尝试这样做时,Javascript 认为我在给他一个字符串,他应该。

所以我有点卡住了,我不知道我怎么能强迫 Javascript 明白我给他的是 PHP 而不是字符串。当然,我已经在寻找解决方案,但我所能找到的只是人们试图通过 PHP 或其他方式生成 Javascript 。我的问题更进一步,您可以称之为:inception。

这是我要完成的代码示例:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<?php
$lat = 46.779231;
$lng = 6.659431;
echo "<script type=\"text/javascript\">
        var carte;
            function initialiser() {
                var latlng = new google.maps.LatLng(46.779231, 6.659431);
                var options = {
                    center: latlng,
                    zoom: 19,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };

                carte = new google.maps.Map(document.getElementById(\"carte\"), options);
                /*var marqueur = new google.maps.Marker({
                    position: new google.maps.LatLng(46.779231, 6.659431),
                    map: carte
                });*/
            }
        var lat = \"<?php echo $lat; ?>\";
        var lng = \"<?php echo $lng; ?>\";
        alert(lat);
        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(lat,lng),
            map: carte
        });
    </script>";
?>

问题出在以下两行:

var lat = \"<?php echo $lat; ?>\";
var lng = \"<?php echo $lng; ?>\";

Javascript 认为 lat 和 lng 是两个字符串,你有什么办法让他理解它实际上是 PHP 吗?

非常感谢您抽出时间来帮助我。

简单地连接它们 -

var lat = '".$lat."';

你的<script></script>标签已经在<?php ... ?>里面了,所以你不需要再使用<?php ... ?>,直接调用php变量就可以了:

var lat = \"$lat\";
var lng = \"$lng\";
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<?php
$lat = 46.779231;
$lng = 6.659431;
echo "<script type=\"text/javascript\">
    var carte;
        function initialiser() {
            var latlng = new google.maps.LatLng(46.779231, 6.659431);
            var options = {
                center: latlng,
                zoom: 19,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            carte = new google.maps.Map(document.getElementById(\"carte\"), options);
            /*var marqueur = new google.maps.Marker({
                position: new google.maps.LatLng(46.779231, 6.659431),
                map: carte
            });*/
        }
    var lat = ".$lat.";
    var lng = ".$lng.";
    alert(lat);
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat,lng),
        map: carte
    });
</script>";
?>

或如果需要

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<?php
$lat = 46.779231;
$lng = 6.659431;
echo "<script type=\"text/javascript\">
    var carte;
        function initialiser() {
            var latlng = new google.maps.LatLng(46.779231, 6.659431);
            var options = {
                center: latlng,
                zoom: 19,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            carte = new google.maps.Map(document.getElementById(\"carte\"), options);
            /*var marqueur = new google.maps.Marker({
                position: new google.maps.LatLng(46.779231, 6.659431),
                map: carte
            });*/
        }
    var lat = '".$lat."';
    var lng = '".$lng."';
    alert(lat);
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat,lng),
        map: carte
    });
</script>";
?>