adit adit - 2 months ago 5
PHP Question

what is wrong with this javascript and php code

I've been trying to debug this for an hour:

<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()">


The error that I got is :

Uncaught SyntaxError: Unexpected token <


and

Uncaught ReferenceError: initialize is not defined


when I remove that block of PHP code, it doesn't give me that error...why?

UPDATE:

Here's where the error is:

$(".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
}
);
});


Here's the generated JS from that initialize function:

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]});

}

Answer

Well, <br /> is no javascript so that would cause an error.

As would the rest of the html echoed inside the javascript block...

As you can see it´s basically one big error message, coming from php.