Hi! I have been trying to get this to work for a while, and I suspect there's an easy solution that I just can't find. My head feels like jelly and I would really appreciate any help.
My main page.php makes a .post() to backend.php and fetches a list of cities which it echoes in the form of:
<li onclick="script('$data');">$data</li>
The list is fetched and put onto the page via .html().
My problem occurs when $data has a single quote in it. backend.php passes the variable just fine to page.php but when i run html() it throws a javascript error (in IE, not FF obviously);
')' is expected
IE parses the single quote and messes up the script()-call. I've been trying to rebuild the echoed string in different ways, escaping the 's on the php side and/or on the javascript side - but in vain. Do I have to review the script in total?
page.php
$.post("backend.php", {q: ""+str+""}, function(data) {
if(data.length >0) {
$('#results').html(data);
}
backend.php
while ($row = $q->fetch()) {
$city = $row['City'];
// $city = addslashes($row['City']);
// $city = str_replace("'","'",$row['City']);
echo "<li onclick=\"script('$city');\">".$city."</li>";
}