Вот сделка. У меня есть index.php, который ссылается на внутренний файл JS в своем заголовке.
Затем index.php включает другой файл .php, который выводит это: + add file. addFile () - это функция Javascript, определенная во внешнем файле JS.
При этом ничего не происходит, включенный php не «видит» функцию JS. Инкапсуляция JS во включенном PHP заставляет все это работать. Но я не хочу так делать.
Есть идеи?
EDIT:
вот источник
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Archie</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="/screen.css" type="text/css" media="screen"/>
<script src="/lib/js/archie.js" type="text/javascript"></script>
</head>
<body>
...
...
//included php starts here
<form action="/lib/course.php" method="post">
<fieldset>
<div id="addFileLocation"></div>
<a href="#" onClick="addFile()">+ add file</a>
<input type="hidden" id="addFileCount" value="0"/>
</fieldset>
</form>
//ends here
...
...
</body>
</html>
и JS:
<script type="text/javascript">
//Dynamically add form fields
//add file browser
function addFile() {
var location = document.getElementById('addFileLocation');
var num = document.getElementById('addFileCount');
var newnum = (document.getElementById('addFileCount').value -1)+ 2;
num.value = newnum;
var newname = 'addFile_'+newnum;
var newelement = document.createElement('input');
newelement.setAttribute('name',newname);
newelement.setAttribute('type','file');
location.appendChild(newelement);
}
</script>