Search code examples
phpjavascripteasyphp

javascript function not behaving correctly


I have this little function

function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

Which whatever I try, simply outputs the php code as the html source, and not the result of the php code. This was previously working fine, and I am not sure what I have changed to result in this behavior.

I have pasted all the code now. An error is generated by a link that calls updateByQuery, preventing makewindows from being parsed correctly..I think. I am not sure what is wrong with updateByQuery however:

function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}

Solution

  • I assume you still have it in a file that is parsed by PHP, like the others already have said. Then it is probably something above this code snippet that confuses the php-parser so it don't recognize the php-tag.

    To test that, try to output something else before this function, maybe just a comment or something.

    Also, use "var" before client1, or else client1 will be in the global scope.

    update 1 Since you tried to insert a piece of php-code and it broke, then the problem is that the server don't parse the file as it should.

    To test if the server really parses your .js files (its not the default setting I believe), create a new file: test.js

    <?php echo "This is a test"; ?>
    

    Open the test.js file in your browser and look at the page source. If it has the php tags your server don't parse .js files.

    update 2 If the php works in .js files, try to rewrite the function like this (sorry I have not tested it because I don't have access to a php-server right now)

    <?php    
    echo "function makewindows(){var child1 = window.open (\"about:blank\"); " .
    "child1.document.write(\"" . htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES) . "\");" . "child1.document.close(); }";    
    ?>