Hi Brik,
That's what I thought, thanks for clarifying the issue. I used your
code with the proper syntax and now it works like a charm! You've just
saved me hours of grief. For some reason this code didn't work on my
test page running on local host, the map won't load, but as long as it
works on the real website I'm happy.

Now I have your code:

        function parseToHTML(strEncodedText)
        {
        var strDecodedText = strEncodedText.replace(/&lt;/g, '<');
        strDecodedText = strDecodedText.replace(/&gt;/g,'>');
        strDecodedText = strDecodedText.replace(/&quot;/g,'"');
        strDecodedText = strDecodedText.replace(/&#39;/g,'\'');
        strDecodedText = strDecodedText.replace(/&amp;/g,'&');
        return strDecodedText;
        }

And in the loop that is generating the markers I have:

var description = parseToHTML(markers[i].getAttribute("description"));

Thanks again, and thank you for the JavaScript resource! :)

On 9 mar, 18:07, Brak <[email protected]> wrote:
> Although PHP and JavaScript sometimes look similar, they use variables
> differently in that JavaScript doesn't require variables to start with
> a prefix ($ or @). Also the string replace function in JavaScript is
> different from PHP. It takes the form of a method for the string
> variable. like so: myString.replace(/searchforWithRegEx/,
> 'replacewith');
>
> You'll want to change your function to use the proper syntax for
> JavaScript before it can work.
>
> function parseToHTML(strEncodedText)
> {
>         var strDecodedText = strEncodedText.replace(/&lt;/g, '<');
>         strDecodedText = strDecodedText.replace(/&gt;/g,'>');
>         strDecodedText = strDecodedText.replace(/&quot;/g,'"');
>         strDecodedText = strDecodedText.replace(/&#39;/g,'\'');
>         strDecodedText = strDecodedText.replace(/&amp;/g,'&');
>         return strDecodedText;
>
> }
>
> Here is a good JavaScript resource for understanding how the basics
> work:http://www.javascriptkit.com/jsref/string.shtml
>
> On Mar 9, 11:42 am, Daniel <[email protected]> wrote:
>
> > Thanks for the quick reply Brak, I appreciate it.
> > I'm still learning both PHP and JavaScript and have taken the code
> > from an example, so I don't know how to decode the "description"
> > variable in my JavaScript.
> > I guess it's this code I have to reverse:
> > function parseToXML($htmlStr)
> > {
> >    $xmlStr=str_replace('<','&lt;',$htmlStr);
> >    $xmlStr=str_replace('>','&gt;',$xmlStr);
> >    $xmlStr=str_replace('"','&quot;',$xmlStr);
> >    $xmlStr=str_replace("'",'&#39;',$xmlStr);
> >    $xmlStr=str_replace("&",'&amp;',$xmlStr);
> > return $xmlStr;
>
> > }
>
> > I tried reversing the process by adding this function to my
> > JavaScript:
>
> > function parseToHTML($xmlStr)
> > {
> >         $htmlStr=str_replace('&lt;','<',$xmlStr);
> >         $htmlStr=str_replace('&gt;','>',$htmlStr);
> >         $htmlStr=str_replace('&quot;','"',$htmlStr);
> >         $htmlStr=str_replace("&#39;",''',$htmlStr);
> >         $htmlStr=str_replace("&amp;",'&',$htmlStr);
> > return $htmlStr;
>
> > }
>
> > And then changing the description variable line like this:
>
> > var description = parseToHTML(markers[i].getAttribute("description"));
>
> > After that the map didn't load, so I guess I'm doing it totally wrong.
> > Care helping me out?
> > I agree that it would be more intuitive to put my description as the
> > content of my marker tag, but as I'm still learning I don't want to
> > risk messing the code up so I don't want to change anything until I
> > have a better grasp on things.
>
> > On 9 mar, 16:03, Brak <[email protected]> wrote:
>
> > > In your PHP you are encoding your < and > to HTML entities. You need
> > > to do the reverse to your "description" variable in JavaScript. They
> > > come from your PHP/XML as entities and if just printed in a web
> > > browser, would show their < and > characters and not be interpreted as
> > > HTML tags. Decode them and you should be good to go.
>
> > > On a side note, it may be more intuitive to put your description as
> > > the content of your <marker> HERE </marker> tag. You'd still need to
> > > encode and decode it, but it may fit better as content rather than an
> > > attribute. Just a thought.
>
> > > On Mar 9, 9:39 am, Daniel <[email protected]> wrote:
>
> > > > Hi,
> > > > My markers are generated via XML with content that contains <a href>
> > > > links. In the InfoWindows the html links are displayed as regular
> > > > text, so instead of a link I get the whole <a href="">link</a>. Is
> > > > there a way to fix this? I've searched around but haven't found a
> > > > clear answer. Would be really grateful if someone could help me with
> > > > this.
>
> > > > Here's a link to the website:
> > > > Map:http://tresuri.com/big-map/
> > > > Javascript-file:http://tresuri.com/wp-map/bigmap.js
> > > > XML-generator:http://tresuri.com/wp-map/generatexml.php
>
> > > > XML-generator code:
>
> > > > <?php
> > > > require("C:/xampp/htdocs/tresuri/wp-map/dbinfo.php");
> > > > require( 'C:/xampp/htdocs/tresuri/wp-load.php' );
>
> > > > function parseToXML($htmlStr)
> > > > {
> > > >    $xmlStr=str_replace('<','&lt;',$htmlStr);
> > > >    $xmlStr=str_replace('>','&gt;',$xmlStr);
> > > >    $xmlStr=str_replace('"','&quot;',$xmlStr);
> > > >    $xmlStr=str_replace("'",'&#39;',$xmlStr);
> > > >    $xmlStr=str_replace("&",'&amp;',$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 id,object_id,post_title,post_content,post_name,type
> > > > FROM wp_posts, wp_term_relationships WHERE id=object_id AND
> > > > post_status='publish' AND post_type='post' AND term_taxonomy_id=3";
> > > > $result = mysql_query($query);
> > > > if (!$result) {
> > > >   die('Invalid query: ' . mysql_error());
>
> > > > }
>
> > > > header("Content-type: text/xml");
>
> > > > // Start XML file, echo parent node
> > > > echo '<?xml version="1.0" encoding="UTF-8"?>';
> > > > echo '<markers>';
>
> > > > // Iterate through the rows, printing XML nodes for each
> > > > while ($row = @mysql_fetch_assoc($result)){
> > > >    $post_id = $row['object_id'];
> > > >    $single = true;
> > > >    $lat = get_post_meta($post_id, marker_lat, $single);
> > > >    $lng = get_post_meta($post_id, marker_lng, $single);
> > > >    $type = get_post_meta($post_id, type, $single);
>
> > > >   // ADD TO XML DOCUMENT NODE
> > > >   echo '<marker ';
> > > >   echo 'name="' . parseToXML($row['post_title']) . '" ';
> > > >   echo 'description="' . parseToXML($row['post_content']) . '" ';
> > > >   echo 'permalink="http://tresuri.com/'. $row['object_id'] . '/' .
> > > > parseToXML($row['post_name']) . '" ';
> > > >   echo 'lat="' . $lat . '" ';
> > > >   echo 'lng="' . $lng . '" ';
> > > >   echo 'type="' . $type . '" ';
> > > >   echo '/>';
>
> > > > }
>
> > > > // End XML file
> > > > echo '</markers>';
> > > > ?>
>
> > > > Regards,
> > > > Daniel

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to