Johnny
asked on
Google markers display in chrome not ie and firefox
i am pulling data from a mysql database and i used the example on google maps for displaying map makers on a map, i have made code changes to the the org file, and its working really well in chrome, i had a friend try in firefox and it is blank no markers at all, i have fixed the errors that firebug gave. and i have ran the page with wc3 it has an error of
any help on why im not getting markers please
thank you in advance for any code or help you may provide.
sample xml
note: above wc3 error is on line 8 in below code
Validation Output: 1 Error
Error Line 9, Column 69: & did not start a character reference. (& probably should have been escaped as &.)
…script src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false"
any help on why im not getting markers please
thank you in advance for any code or help you may provide.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps AJAX + mySQL/PHP Example</title>
<script src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var customIcons = {
restaurant: {
icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png',
shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
},
bar: {
icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png',
shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
}
};
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(39.924226999999995,-83.80881699999999), zoom:10 , mapTypeId: 'roadmap'
});
google.maps.event.addListener(map, 'click', find_closest_marker);
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var id = markers[i].getAttribute("id");
var loc = markers[i].getAttribute("loc");
var img = markers[i].getAttribute("img");
var cat = markers[i].getAttribute("cat");
var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
//var html = "<A HREF='../single_event_page.php?id=" + id + "' target='_parent' title='" + loc + ">" + name + "</a> <br/>" + address;
var html ='<div id="content" style="margin-left:15px; margin-top:3px;overflow:hidden;">'+
'<div id="bodyContent">'+
'<img src="'+
img+
'" style="width:45px;height:45px;" align="left" alt="event image"/>' +
'<br> <br><br><font style="color:darkblue;font:11px tahoma;margin-left:5px;"> <A HREF="../single_event_page.php?id=' +
id + '" target="_parent" title="' +
loc + '"> '+
name +
'</a></font>'+
'<br><div style="font:13px verdana;color:darkgreen; margin-left:5px;">' +
'<br>'+
cat+'<br>'+
'</div>'+
'</div>';
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map : map,
position : point,
icon : icon.icon,
shadow : icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {
}
function rad(x) {return x*Math.PI/180;}
function find_closest_marker( event ) {
var lat = event.latLng.lat();
var lng = event.latLng.lng();
var R = 6371; // radius of earth in km
var distances = [];
var closest = -1;
for( i=0;i<map.markers.length; i++ ) {
var mlat = map.markers[i].position.lat();
var mlng = map.markers[i].position.lng();
var dLat = rad(mlat - lat);
var dLong = rad(mlng - lng);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
distances[i] = d;
if ( closest == -1 || d < distances[closest] ) {
closest = i;
}
}
alert(map.markers[closest].title);
}
//]]>
</script>
</head>
<body onload="load()">
<div id="map" style="width: 100%; height: 500px"></div>
</body>
</html>
sample xml
<?xml version="1.0" encoding="utf-8"?>
<markers><marker name="Metal Machine Monday- Upstairs at EXIT" loc="Location: Exit
1315 W North Ave
Chicago, IL, 60642-1513" id="1" address="Exit
1315 W North Ave
Chicago, IL, 60642-1513" lat="41.910461" lng="-87.660980" img="https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/c268.0.315.315/s552x414/560827_10151619336171173_851548175_n.jpg" cat="Bar" /><marker name="50 cent Boneless Wings" loc="Location: Wing Stop
3326 North Western Avenue
Riverview Plaza, Chicago, IL 60618" id="2" address="Wing Stop
3326 North Western Avenue
Riverview Plaza, Chicago, IL 60618" lat="41.940685" lng="-87.696442" img="http://chicagoil.iswhereitsat.com/wp-content/themes-ai1ec/vortex/img/default-event-avatar.png" cat="Restaurant" /><marker name="Lincoln Park Zoo?s Edible Garden" loc="Location: Farm In The Zoo
2001 North Clark Street
Chicago, IL 60614" id="3" address="Farm In The Zoo
2001 North Clark Street
Chicago, IL 60614" lat="0.000000" lng="0.000000" img="http://chicagoil.iswhereitsat.com/wp-content/uploads/sites/10/2013/06/edible-garden2.jpg" cat="" /><marker name="Happy Hour at Frankie?s 5th Floor Pizzeria" loc="Location: Frankie's 5th Floor Pizzeria
900 North Michigan
Chicago, IL 60611" id="4" address="Frankie&#39;s 5th Floor Pizzeria
900 North Michigan
Chicago, IL 60611" lat="41.892509" lng="-87.616173" img="http://chicagoil.iswhereitsat.com/wp-content/themes-ai1ec/vortex/img/default-event-avatar.png" cat="Restaurant" /><marker name="Socrates Party" loc="Location: 709 S Randolph St Champaign, IL 61820" id="5" address="709 S Randolph St Champaign, IL 61820" lat="0.000000" lng="0.000000" img="http://chicagoil.iswhereitsat.com/wp-content/themes-ai1ec/vortex/img/default-event-avatar.png" cat="" /><marker name="Test should show up as boston only" loc="Location: 131 main st Boston, Ma" id="6" address="131 main st Boston, Ma" lat="0.000000" lng="0.000000" img="http://chicagoil.iswhereitsat.com/wp-content/themes-ai1ec/vortex/img/default-event-avatar.png" cat="" /><marker name="Chicago Toy and Game Fair" loc="Location: Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611" id="271" address="Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611" lat="41.891739" lng="-87.599876" img="http://blog.navypier.com/wp-content/uploads/headway/header-uploads/navy-blog2_08.png" cat="point_of_interest, amusement_p" /><marker name="Chicago Chocolate Festival" loc="Location: Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611" id="272" address="Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611" lat="41.891739" lng="-87.599876" img="http://blog.navypier.com/wp-content/uploads/headway/header-uploads/navy-blog2_08.png" cat="point_of_interest, amusement_p" /></markers>
Please give us a link to the page. It is much easier and more accurate to use the developer tool built-in to the browsers to figure these things out.
As @DaveBaldwin has said, please post the link for us to look at. There will probably be errors in the console (press F12 for dev tools and go to console). If there are then post them here.
You are missing ( ) in your ajax function (line 87):
the XMLHttpRequest requires the ()
ie
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
the XMLHttpRequest requires the ()
ie
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
work fine for me :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps AJAX + mySQL/PHP Example</title>
<script src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=false"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var customIcons = {
restaurant: {
icon : 'http://labs.google.com/ridefinder/images/mm_20_blue.png',
shadow : 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
},
bar: {
icon : 'http://labs.google.com/ridefinder/images/mm_20_red.png',
shadow : 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'
}
};
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center : new google.maps.LatLng(39.924226999999995,-83.80881699999999),
zoom : 10,
mapTypeId : 'roadmap'
});
google.maps.event.addListener(map, 'click', find_closest_marker);
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl(
"phpsqlajax_genxml.php",
function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for ( var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var id = markers[i].getAttribute("id");
var loc = markers[i].getAttribute("loc");
var img = markers[i].getAttribute("img");
var cat = markers[i].getAttribute("cat");
var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
//var html = "<A HREF='../single_event_page.php?id=" + id + "' target='_parent' title='" + loc + ">" + name + "</a> <br/>" + address;
var html = '<div id="content" style="margin-left:15px; margin-top:3px;overflow:hidden;">'
+ '<div id="bodyContent">'
+ '<img src="'+img+'" style="width:45px;height:45px;" align="left" alt="event image"/>'
+ '<br> <br><br><font style="color:darkblue;font:11px tahoma;margin-left:5px;"> <A HREF="../single_event_page.php?id='+id+'" target="_parent" title="'+loc+'"> '+name+'</a></font>'
+ '<br><div style="font:13px verdana;color:darkgreen; margin-left:5px;">'+'<br>'+cat+'<br>'+'</div>'
+ '</div>';
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({map : map, position : point,icon : icon.icon,shadow : icon.shadow});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {
}
function rad(x) {
return x * Math.PI / 180;
}
function find_closest_marker(event) {
var lat = event.latLng.lat();
var lng = event.latLng.lng();
var R = 6371; // radius of earth in km
var distances = [];
var closest = -1;
for (i = 0; i < map.markers.length; i++) {
var mlat = map.markers[i].position.lat();
var mlng = map.markers[i].position.lng();
var dLat = rad(mlat - lat);
var dLong = rad(mlng - lng);
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2)+ Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong / 2) * Math.sin(dLong / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
distances[i] = d;
if (closest == -1 || d < distances[closest]) {
closest = i;
}
}
alert(map.markers[closest].title);
}
//]]>
</script>
</head>
<body onload="load()">
<div id="map" style="width: 100%; height: 500px"></div>
</body>
</html>
Ran your code locally
markers are there - you need to zoom out to see them they seem to be grouped to the north.
markers are there - you need to zoom out to see them they seem to be grouped to the north.
The experts are right... as @julianH said the markers are grouped slightly NWN on Chicago
you can test it yourself here: http://jsbin.com/ehusiGa/2/embed?live,html
works on firefox too
you can test it yourself here: http://jsbin.com/ehusiGa/2/embed?live,html
works on firefox too
I don't think the question is about where's the makers
Google markers display in chrome not ie and firefox
Google markers display in chrome not ie and firefox
I don't think the question is about where's the makers
The question is about markers not showing - if the markers are off screen then they won't show - presents exactly as if no markers.
The test was done in firefox and chrome - same result.
So, either we are dealing with code different what was posted
Or the code works and the markers are there just off screen (which would explain the problem)
If #2 then it might be that the feedback to the author from the FF / Chrome testers might have ommitted the bit about zooming out to find the markers.
As things stand I go with my earlier post - the markers are there but off screen.
See my last post "works on firefox too"
The jsbin fails in IE due to security issues and iframe access apparent violation
SEC7131: Security of a sandboxed iframe is potentially compromised by allowing script and same origin access.
The jsbin fails in IE due to security issues and iframe access apparent violation
SEC7131: Security of a sandboxed iframe is potentially compromised by allowing script and same origin access.
ASKER
well thank you for all the replies
if you read the post i did check firebug for the console and i fixed the errors it had.
the problem is the markers do not show up at all (yes most are north east chicago area for testing) they show up fine in Google Chrome Browser, and have been all a long(save a broken javascript routine, and that's normal) but ie and firefox browsers not at all. this is the problem and the question hot to get them to show up in FF and IE.
i changed or rather added the () to the xml..request and still no joy on my page. did i miss something else thats missing?
heres the page on my server, there are other markers on the page as they are in the database.
testing example
with the exception if the xml data the codes the same as posted
if you read the post i did check firebug for the console and i fixed the errors it had.
the problem is the markers do not show up at all (yes most are north east chicago area for testing) they show up fine in Google Chrome Browser, and have been all a long(save a broken javascript routine, and that's normal) but ie and firefox browsers not at all. this is the problem and the question hot to get them to show up in FF and IE.
i changed or rather added the () to the xml..request and still no joy on my page. did i miss something else thats missing?
heres the page on my server, there are other markers on the page as they are in the database.
testing example
with the exception if the xml data the codes the same as posted
DaveBaldwin asked:
And did you tried my code?
Please give us a link to the page. It is much easier and more accurate to use the developer tool built-in to the browsers to figure these things out.
And did you tried my code?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
running the xml page directly has an error.
http://completelocal.info/ ee_testing /phpsqlaja x_genxml.p hp
there's a buncha - or something, ff and chrome see it differently, im not sure where the problem is.
my code to generate the xml taking out the ? from print '<?xml version="1.0" encoding="utf-8"?>'."\n"; breaks the xml for google chrome
http://completelocal.info/
there's a buncha - or something, ff and chrome see it differently, im not sure where the problem is.
my code to generate the xml taking out the ? from print '<?xml version="1.0" encoding="utf-8"?>'."\n"; breaks the xml for google chrome
<?php
require("phpsqlajax_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM iwia_events WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header('Content-Type: text/xml; charset=utf-8;');
print '<?xml version="1.0" encoding="utf-8"?>'."\n";
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
//echo 'name="'.$title.'"';
echo 'name="'.utf8_decode (parseToXML($row['event_title'])) . '" ';
if ($row['event_location']) {
$loc = "Location: ".$row['event_location']."";
echo 'loc="' . $loc . '" ';
}
echo 'id="' . $row['id'] . '" ';
echo 'address="' . parseToXML($row['event_location']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'img="' . $row['event_image'] . '" ';
echo 'cat="' . $row['type'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
ASKER
@leakim971 whats different from your code? i tried it see example here
i do not think it was the code anymore save the missing ().
i think its the xml generation as we are getting errors there.
but to note your code doesn't work in Firefox either. (in the example i posted from yours)
so again i belive its the xml generation and not the main code.
again thank you everyone for the help so far
i do not think it was the code anymore save the missing ().
i think its the xml generation as we are getting errors there.
but to note your code doesn't work in Firefox either. (in the example i posted from yours)
so again i belive its the xml generation and not the main code.
again thank you everyone for the help so far
your XML file is malformed because you're not encoding special characters :
You have a good example on this page :
https://developers.google.com/maps/articles/phpsqlajax_v3?hl=de#outputxml
"<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">
You have a good example on this page :
https://developers.google.com/maps/articles/phpsqlajax_v3?hl=de#outputxml
ASKER
@ leakim971 thats the code im using. exact page i used as an example
code from that page "Using PHP's echo to Output XML" section only think i did different is that i added " print '<?xml version="1.0" encoding="utf-8"?>'."\n";"
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
code from that page "Using PHP's echo to Output XML" section only think i did different is that i added " print '<?xml version="1.0" encoding="utf-8"?>'."\n";"
Use this instead : http://php.net/manual/en/function.htmlentities.php
ASKER
is there a way for that output to have line breaks its all jumbled up.
and now with htmlentities i get
This page contains the following errors:
error on line 18 at column 1689: Entity 'rsquo' not defined
Below is a rendering of the page up to the first error.
and now with htmlentities i get
This page contains the following errors:
error on line 18 at column 1689: Entity 'rsquo' not defined
Below is a rendering of the page up to the first error.
ASKER
.PHP_EOL makes line breaks
ASKER
current code working i'm working with
<?php
require("phpsqlajax_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM iwia_events WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header('Content-Type: text/xml; charset=utf-8;');
print '<?xml version="1.0" encoding="utf-8"?>'."\n";
// Start XML file, echo parent node
echo '<markers>'.PHP_EOL;
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker '.PHP_EOL;
//echo 'name="'.$title.'"';
echo 'name="'.utf8_decode (htmlentities($row['event_title'])) . '" '.PHP_EOL;
if ($row['event_location']) {
$loc = "Location: ".$row['event_location']."";
echo 'loc="' . htmlentities($loc) . '" '.PHP_EOL;
}
echo 'id="' . $row['id'] . '" '.PHP_EOL;
echo 'address="' . htmlentities($row['event_location']) . '" '.PHP_EOL;
echo 'lat="' . $row['lat'] . '" '.PHP_EOL;
echo 'lng="' . $row['lng'] . '" '.PHP_EOL;
echo 'img="' . $row['event_image'] . '" '.PHP_EOL;
echo 'cat="' . $row['type'] . '" '.PHP_EOL;
echo "/>".PHP_EOL;
}
// End XML file
echo '</markers>';
?>
ASKER
i changed it back to the parse_to_xml to see if i can find the error
getting an error of
HUH what i think the browsers are nuts unless im seriously missing something here
getting an error of
This page contains the following errors:
error on line 819 at column 1: Encoding error
Below is a rendering of the page up to the first error.
<marker
name="Fireworks Cruise aboard Seadog"
loc="Location: Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611"
id="136"
address="Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611"
lat="41.891739"
lng="-87.599876"
img="http://blog.navypier.com/wp-content/uploads/headway/header-uploads/navy-blog2_08.png"
cat="point_of_interest, amusement_p"
/>
<marker
name="Shoreline Sightseeing July 4th , Inc 600 E Grand Ave, Chicago, IL 60611"
id="151"
address="Navy Pier, Inc 600 E Grand Ave, Chicago, IL 60611"
lat="41.891739"
lng="-87.599876"
img="http://blog.navypier.com/wp-content/uploads/headway/header-uploads/navy-blog2_08.png"
cat="point_of_interest, amusement_p"
/>
it says the error is at line 11 <marker HUH what i think the browsers are nuts unless im seriously missing something here
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
ok so how do i get rid of the Hidden chars? and how the heck did u find them too.
ASKER
current code im working with now
and @ leakim971 it was htmlspecialchars not htmlentities you mentioned before (i get them confused too sometimes on what they each do)
and @ leakim971 it was htmlspecialchars not htmlentities you mentioned before (i get them confused too sometimes on what they each do)
<?php
require("phpsqlajax_dbinfo.php");
function htmlspecialchars2($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM iwia_events WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header('Content-Type: text/xml; charset=utf-8;');
print '<?xml version="1.0" encoding="utf-8"?>'."\n";
// Start XML file, echo parent node
echo '<markers>'.PHP_EOL;
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
//echo 'name="'.$title.'"';
echo 'name="'.utf8_decode (htmlspecialchars($row['event_title'])) . '" ';
if ($row['event_location']) {
$row['event_location'] = str_replace(array("\n", "\r"), '', $row['event_location']); // echo $row['event_location'] in a single line
$loc = "Location: ".$row['event_location']."";
echo 'loc="' . htmlspecialchars($loc) . '" ';
}
echo 'id="' . $row['id'] . '" ';
echo 'address="' . htmlspecialchars($row['event_location']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'img="' . $row['event_image'] . '" ';
echo 'cat="' . $row['type'] . '" ';
echo "/>".PHP_EOL;
}
// End XML file
echo '</markers>';
?>
instead using multiple echo, put all the xml in a string and echo this string at the end, out of the loop
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
wow now the other data not the ical data is messed up omg i do anything to it today it breaks
grrr
grrr
ASKER
i went a different way and edited the ical import to parse utf-8 more that seamed to fix some of it.
i apparently have more errors then i thought as i took out the ical import data now with new code it breaks again
i apparently have more errors then i thought as i took out the ical import data now with new code it breaks again
I get the markers now on FF and IE
ASKER
no the question at hand is how to accept the proper answer
technical
Post by: julianH Posted on 2013-09-12 at 10:14:13ID: 39487307
is what triggered the look in the xml file dummy.
then leakim971 stuck with it and helped solve it with all the little suggestions.
ill give it 10 mins here, and ill accept julianH as the answer with 100 points and il give 400 to leakim971 on some post yet to be determined
that sound fair
ps: i still need help with more if this as i seamed to of not only broken another area but the closest marker is no longer working (or did it ever not sure but i need that fixed too)
and i need to figure out why im not getting name now as event info that broke too. grrr more problems but ill post new questions for all that so please be on the look out for them
technical
Post by: julianH Posted on 2013-09-12 at 10:14:13ID: 39487307
is what triggered the look in the xml file dummy.
then leakim971 stuck with it and helped solve it with all the little suggestions.
ill give it 10 mins here, and ill accept julianH as the answer with 100 points and il give 400 to leakim971 on some post yet to be determined
that sound fair
ps: i still need help with more if this as i seamed to of not only broken another area but the closest marker is no longer working (or did it ever not sure but i need that fixed too)
and i need to figure out why im not getting name now as event info that broke too. grrr more problems but ill post new questions for all that so please be on the look out for them
ASKER
@leakim971 yes it works in ff and ie now..it was the utf-8 encoding mucking it all up
ASKER
i got it all to work now..
it was mucking up on apos
also note i redid the injections for the ical import to better parse utf-8 as ical seams to like that format and browsers do not.
current code
it was mucking up on apos
also note i redid the injections for the ical import to better parse utf-8 as ical seams to like that format and browsers do not.
current code
<?php
require("phpsqlajax_dbinfo.php");
function htmlspecialchars2($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
$xmlStr=str_replace("’",''',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM iwia_events WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header('Content-Type: text/xml; charset=utf-8;');
print '<?xml version="1.0" encoding="utf-8"?>'."\n";
// Start XML file, echo parent node
echo '<markers>'.PHP_EOL;
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
$title=htmlspecialchars2($row['event_title']);
//$title = addslashes($row['event_title']);
echo 'name="'.$title.'" ';
//echo 'name="'.htmlspecialchars($row['event_title']) . '" ';
if ($row['event_location']) {
$row['event_location'] = str_replace(array("\n", "\r"), ' ', $row['event_location']); // echo $row['event_location'] in a single line
$loc = "Location: ".$row['event_location']."";
echo 'loc="' . htmlspecialchars($loc) . '" ';
}
echo 'id="' . $row['id'] . '" ';
echo 'address="' . htmlspecialchars($row['event_location']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'img="' . $row['event_image'] . '" ';
echo 'cat="' . $row['type'] . '" ';
echo "/>".PHP_EOL;
}
// End XML file
echo '</markers>';
?>
I didn't try any of the code above. But I did use the code from https://developers.google.com/maps/articles/phpsqlsearch_v3 to implement a store locator with Google maps on a client site. One of the features in that code (which works in all browsers) is a 'zoom' function that zooms to the area where the markers are located.
ASKER
@DaveBaldwin that is what i was looking for now to adapt it to my database and what i'm trying to do..thats prefect tho thanks.
ASKER
Thank you all for the help on this post i'm most grateful.
@Pern - it is a bit confusing when you assign the higher points to the assisted solution. The solution to the problem was the non-UTF-8 characters in the XML file - so that should have been the accepted solution.
As this question stands - for future readers they will read the accpeted solution as the one that solved the problem - which is misleading because the accepted solution points out that there is no problem.
leakim's post should be the accepted and all others assisted.
As this question stands - for future readers they will read the accpeted solution as the one that solved the problem - which is misleading because the accepted solution points out that there is no problem.
leakim's post should be the accepted and all others assisted.
ASKER
@julianH you noticed it was a problem in the gen xml file and the content type, i looked at it closer and i saw the problem basically at the same time that leakim did so you got the accepted answer and he got more points for helping me what ultimately we all together without little pieces derived at the solution.
it was with you the ball got rolling.
Thank you both for all the help
it was with you the ball got rolling.
Thank you both for all the help
@Pern - ok but this is not about points it is about how EE is used by other people looking for solutions. All I am saying is that in this case the points split is fine but I would have given leakim's answer the accepted one as it more directly identified the problem. My post did not expressly point out the issue.
Anyway will leave it at that - thanks for the points.
Anyway will leave it at that - thanks for the points.