“Uncaught SyntaxError: Unexpected token ILLEGAL” is a common error when input parameter of JavaScript function is not closed properly.
1) To escape JavaScript parameter, we use PHP htmlentities function. However, even with PHP htmlentities, we might still encounter this issue. Consider the following example:
PHP Code:
echo "<a href='javascript:showContent(\"" . htmlentities ("Edit Service Sushi's Shop", ENT_QUOTES) . "\");'></a>";
2) Now the string should be “Edit Service Sushi's Shop“.
3) However, when this string reaches browser, the string gets unescaped and becomes:
<a href='javascript:showContent("Edit Service Sushi's Shop");'></a>
4) Hence, the JavaScript function breaks when user click on this link.
5) To solve this, we need to double-escape the string.
echo "<a href='javascript:showContent(\"" . htmlentities(htmlentities("Edit Service Sushi's Shop", ENT_QUOTES), ENT_QUOTES) . "\");'></a>";
6) Now the string becomes “Edit Service Sushi&apos;s Shop“. The string parameter is now safe. We can use this parameter string as input for jQuery.html() function without breaking the JavaScript function.
<a href='javascript:showContent("Edit Service Sushi's Shop");'></a>
<script>
function showContent(input){
$("#mydiv").html(input);
//the escaped characters will be unescaped via .html function
}
</script>