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