jockey_jockey Posted April 25, 2008 Share Posted April 25, 2008 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&app=26&%2338;config=1000 But I want it to be "&". Please help, Thanks in advance Link to comment https://forums.phpfreaks.com/topic/102857-echo-anchor-tag-ampersand-issues-with-php/ Share on other sites More sharing options...
ucffool Posted April 25, 2008 Share Posted April 25, 2008 $array = array('page'=>'config_detail', 'app'=>$_GET['app'], 'config'=>$config_id_ex[$x]); $querystring = http_build_query($array); $print .= "<td>"; $print .= "<a href='main.php?$querystring'>" .$config_name_ex[$x]. "</a>"; $print .= "</td>"; Link to comment https://forums.phpfreaks.com/topic/102857-echo-anchor-tag-ampersand-issues-with-php/#findComment-527284 Share on other sites More sharing options...
jockey_jockey Posted April 25, 2008 Author Share Posted April 25, 2008 Thanks for the reply, I am afraid that did not work. That is because when you issue an http_build_query, the hrefs now have & instead of & and when I try to inject the received html fragment into the current html using DOM, it will fail since it finds an unescaped & and fails. I think the actual code might help to be more clear: 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&app=26&%2338;config=1000 Please advice, Link to comment https://forums.phpfreaks.com/topic/102857-echo-anchor-tag-ampersand-issues-with-php/#findComment-527300 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.