Reputation: 33644
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]});
}
Upvotes: 1
Views: 5620
Reputation: 1
This error occurs because there are variables that are not being used within the code, that is, variables that have not been assigned any value. Please check the variable laws that are used one by one and delete those that are not being used
Upvotes: 0
Reputation: 11
Its because its showing the data as text in place of html
Its basically a php errors thrown out by javascript.
Upvotes: 1
Reputation: 13341
Your problem is that you're generating HTML into JavaScript. Doing this causes a syntax error at the first <
as indicated by the error message. It looks like your PHP is ONLY generating HTML. If you're trying to do this, put it outside your <script>
tags. If you're not, you're going to need to wrap the HTML in quotations (or something) so that it doesn't cause a parse error.
Also, your $response
object doesn't have a property called $total
, as the error message says. Be sure that you're accessing the right properties to avoid errors.
Upvotes: 0
Reputation: 91734
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.
Upvotes: 4