如何在PHP内部的Javascript中输入PHP

How to input PHP inside Javascript that is inside PHP

本文关键字:PHP Javascript 输入 内部      更新时间:2023-09-26

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

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

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

下面是我试图实现的一个代码示例:

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