我一直在调试一个小时:

<script type="text/javascript">
function initialize() {
    alert('test');
    var latlngarr = new Array();
    var titlearr = new Array();
    <?php
        echo "latlngarr.length=".$response->total.";";
        echo "titlearr.length=".$response->total.";";
        for ($i=0;$i<$response->total;$i++){
            echo "latlngarr[".$i."] = new google.maps.LatLng(".$response->businesses[$i]->location->coordinate->latitude.",".$response->businesses[$i]->location->coordinate->longitude.");";
            echo "titlearr[".$i."] = \"".$response->businesses[$i]->name."\";";
        }
    ?>

    var myOptions = {
        zoom: 10,
        center: latlngarr[0],
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var markerarr = new Array(titlearr.length);
    for(var i=0;i<markerarr.length;i++)
        markerarr[i] = new google.maps.Marker({position: latlngarr[i], map: map, title:titlearr[i]});

}
</script>

<body onload="initialize()">


我得到的错误是:


  未捕获到的SyntaxError:意外令牌<





  未捕获的ReferenceError:未定义初始化


当我删除该PHP代码块时,它不会给我该错误。为什么?

更新:

错误在这里:

$(".saved").live('click', function() {
    var $btn = $(this);
    $.post("update.php", {uid: my_uid, save: "no", mid: "<?php echo $mid; ?>"}, function(){
        setTimeout(function(){
            $btn.replaceWith('<a class="save action_btn" onclick="return false;">Save</a>');
        }, 100); //this is line 76
    });
});


这是从该初始化函数生成的JS:

function initialize() {
    alert('test');
    var latlngarr = new Array();
    var titlearr = new Array();

    <br />
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined property: stdClass::$total in C:\wamp\www\movie.php on line <i>89</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>711160</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\movie.php' bgcolor='#eeeeec'>..\movie.php<b>:</b>0</td></tr>
    </table></font>
    latlngarr.length=;<br />
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined property: stdClass::$total in C:\wamp\www\movie.php on line <i>90</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>711160</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\movie.php' bgcolor='#eeeeec'>..\movie.php<b>:</b>0</td></tr>
    </table></font>
    titlearr.length=;<br />
    <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined property: stdClass::$total in C:\wamp\www\movie.php on line <i>91</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>711160</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\movie.php' bgcolor='#eeeeec'>..\movie.php<b>:</b>0</td></tr>
    </table></font>

    var myOptions = {
        zoom: 10,
        center: latlngarr[0],
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var markerarr = new Array(titlearr.length);
    for(var i=0;i<markerarr.length;i++)
        markerarr[i] = new google.maps.Marker({position: latlngarr[i], map: map, title:titlearr[i]});
}

最佳答案

好吧,<br />不是JavaScript,所以会导致错误。

其余的html也会在javascript块内回显...

如您所见,它基本上是一条很大的错误消息,来自php。

关于php - 这个javascript和php代码有什么问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5838008/

10-11 14:00