SnarkyDTheman SnarkyDTheman - 4 months ago 20
HTML Question

PHP: Code gets turned into HTML <!-- Comments? -->

when I enter in code like this:

<p>Hello <? echo $name; ?>, How are you?</p>


It prints:

<p>Hello <!--? echo $name; ?-->, How are you?</p>


As a comment. I have it in a file called base.js with this code:

function showName() {
document.getElementById("name").innerHTML = "<p>Hello <? echo $name; ?>, How are you?</p>";
}


So I embed the .js file like so:

<script type="text/javascript" src="base.js"></script>


So, after it changes the
<p id="name"></p>
I get:

<p id="name">Hello <!--? echo $name; ?-->, How are you?</p>


I had the code in the .php file, and it seemed to work fine. Now that I have it in a separate base.js file, it ceases to function. Help!

Answer

That is because it is no longer php.

Change to

<script type="text/javascript" src="base.php"></script>

and have a 
<?php header("content-type:text/javascript"); 
$name = "...";
?>

function showName() {
   document.getElementById("name").innerHTML = "<p>Hello <?php echo $name; ?>, How are you?</p>";
}

Or

change to

function showName(name) {
   document.getElementById("name").innerHTML = "<p>Hello "+name+", How are you?</p>";
}

and in the php file have

<script>
// using json_encode to make the string safe for script injection. 
// Still needs quotes for a single string
showName("<?php echo json_encode($name); ?>");
</script>
Comments