У меня есть две переменные, содержащие некоторый HTML-код, и еще одна переменная, содержащая код для HTML-формы. Я пытаюсь развернуть строку за секунду, чтобы передать ее в качестве параметра функции, однако это вызывает некоторые ошибки.
Моя функция создания всплывающего окна очень проста:
function popup(htmlcode){
child1 = window.open ("about:blank");
child1.document.write(htmlcode);
child1.document.close();
}
Код, который использует вышеуказанную функцию
<?php
$blah = "<h1>Well</h1>"; $test = "<h2>Done</h2>";
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() { sendInfo(\"".$blah."\", \"".$test."\"); } ),1250);\" />
</form>";
echo "<h1>hello</h1>
<div id='form'>
<a href='#' onclick=\"popup('" . htmlentities($formcode) . "'); return false;\">
click here</a>
</div>";
Это производит достаточно приличный html-код, однако firebug выдает ошибку, что у меня есть неопределенная боковая строка. Я не могу найти, где это. Я понимаю, что то, как я это сделал, не является идеальным, но я учусь и не знаю лучшего способа в настоящее время. Я ценю любой вклад
edit: ОК, проблема в том, что у меня были неопределенные строковые литералы, которые были \ n символами. Я сделал строку в одну строку, и она правильно вызвала функцию.
Разве нельзя разбить один оператор echo на несколько строк?
Теперь проблема в HTML, генерируемом во всплывающем окне. Часть кода фактически выводится на экран, почему это так?
<form action="process.php" method="post" enctype="multipart/form-data "><label for="file">Filename:</label><input name="file" id="file" type="file"> <br><input name="submit" value="Submit" onclick="setTimeout(function() { sendInfo(" type="submit"><h1>Well</h1>", "<h2>Done</h2>"); },1250);" /></form>
Смотрите изображение здесь :