Jump to content

PHP HTML Echo Anchor Tag Ampersand Issues


jockey_jockey

Recommended Posts

Hello,

 

I have an XSL file and I am firing an Ajax call from a link that would do a GET request to the PHP script and it would return a string that basically holds a snippet of HTML and as I get back the response, the Ajax callback would manipulate an exisiting section of the HTML with the response just received.

 

Its working fine except that I am printing anchor tags which is a GET request to some script. The problem is that the "Ampersand" is not correctly passed on to the XHTML page.

 

Snippets are below:

 

Script that creates the string and echoes on the server side:Snippet:

 

$print .= "<td>";

$print .= "<a href='" . "main.php?page=config_detail" . "&" . "app=" . $_GET['app'] . "&" . "config=" . $config_id_ex[$x]. "'>" .$config_name_ex[$x]. "</a>";

$print .= "</td>";

 

Link that is actually present on the XHTML file after the AJAX is executed is:

 

http://localhost/main.php?page=config_detail&#38;app=26&%2338;config=1000

 

But I want it to be "&".

 

Please help,

Link to comment
Share on other sites

you are using main.php to generate the xhtml and  its placing utf-8 codes into the text instead of what you want.

 

Is that correct?

 

if so show us the code you are using to generate the xml and we can highlight the area that needs attention...

Link to comment
Share on other sites

The URLs that are being generated is a part of a custom framework that we use. So the main.php?page=config_detail means that I go to main.php which redirects me to a page called config_detail.php.

 

Code that has the anchor to the page generating the XHTML fragment:

 

<a id="all_data" name="main.php?process=spec_run&app={$sItem}&all" style="color:#FFFFFF;"> view all </a>

 

So this goes to a page called spec_run at a specific location which is not important for the problem that I have.

 

The request is handled by an AJAX Call (Jquery) as follows:

 

$(document).ready(function() {

 

$("a#all_data").click(function() {

 

var furl = $(this).attr("name");

var turl = furl.split("?");

var page = turl[0];

var params = turl[1];

 

$.ajax({                                //Building request

    url: page,

    type: 'GET',

    data: params,

    dataType: 'html',                //Datatype of the response

    timeout: 10000000,

    error: function(xhr,err,e) {

          alert('error getting raw data' + err);

    },

    success: function(text){

$("table#detail_table").html(text);    //On Success, replacing the table tag that has the id: "detail_table" with the contents that it received

}

});

 

return false;

 

});

});

 

The code that generates the XHTML on the spec_run page:

 

$print = "";

$print .= "<table id='detail_table'>";

$print .=  "<thead>";

$print .=  "<tr>";

$print .=  "<a class='sort_link' href='#'>Build</a>";

$print .=  "</th>";

$print .=  "<th>";

$print .=  "<a class='sort_link' href='#'>Config</a>";

$print .=  "</th>";

$print .=  "<th>";

 

for ($x=0; $x<$r; $x++) {

if($x % 2 == 0)

    $print .= '<tr class="odd">';

else

    $print .= '<tr class="even">';

 

//Build:

$print .= "<td>";

$print .= "<a href='main.php?page=build_detail&app=" .$_GET['app']. "&build=" .$build_id_ex[$x]. "'>" .$build_name_ex[$x]. "</a>";

$print .= "</td>";

 

//Config:

 

$print .= "<td>";

$print .= "<a href='" . "main.php?page=config_detail" . "&" . "app=" . $_GET['app'] . "&" . "config=" . $config_id_ex[$x]. "'>" .$config_name_ex[$x]. "</a>";

$print .= "</td>";

 

 

$print .= "</tr>";

$print .= "</tbody>";

$print .= "</table>";

 

echo $print;

 

 

The tables is being rendered correctly and everything else looks fine except the anchor tags that have messed up ampersands. It actually gets rendered as:

 

main.php?page=config_detail&#38;app=26&%2338;config=1000

 

Please advice,

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.