tags:

views:

208

answers:

3

I am trying to use the following code, to display $formcode, which is the html code for a form, in a popup windows. I understand that it is not an ideal method, but I want to understand why it is not working.

<?php
$blah = "Well"; $test = "Done";
echo '<script type="text/javascript" src="fetchlayers.js"></script>';
$formcode = "<form action=\"process.php\" method=\"post\" enctype=\"multipart/form-data \"><label for=\"file\">Filename:</label><input type=\"file\" name=\"file\" id=\"file\"/> <br /><input type=\"submit\" name=\"submit\" value=\"Submit\" onclick=\"setTimeout(function() { alert('$blah'); },1250);\" /></form>";


echo "<h1>hello</h1>
<div id='form'>
<a href='#' onclick=\"createpopup('" . htmlentities($formcode) . "'); return false;\">
click here</a>
</div>";

In Firebug, I get missing ) after argument list which seems somewhat arbitrary, as the right number of parentheses is there.

A: 

I am not sure what you mean by not working, but if you mean the window is not popping up then the problem is in your fetchlayer.js file. But other wise let us know what exactly what you mean by not working.

Babiker
+2  A: 

I'm not sure if it's this or not, because I can't test it, but check the alert('$blah')

it should be with \' I think

alert(\'$blah\')
fesja
A: 

The content of $formcode needs to have the single quotes double-escaped:

alert(\\'$blah\\');

so that the string contains "\'".

Chris Thornhill
why double escaped?
Josh20002