Скрипт не работает, потому что вы пытаетесь включить внешний файл JavaScript, но также используете тот же тег для встроенного скрипта.
Эта часть
<script src="assets/js/script.js">
var q = "<?php echo $q;?>";
</script>
должна выглядеть примерно так
<script src="assets/js/script.js"></script>
<script>
var q = "<?php echo $q;?>";
</script>
Полностью исправленный код
<?php
if(isset($_GET["q"])) {
$q = $_GET["q"];
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="assets/js/script.js"></script>
<script>
var q = "<?php echo $q;?>";
</script>
</head>
<body onload="return Search(q, otherFunction(), otherFunction2())">
<div>
Content
</div>
</body>
</html>
Редактировать: Сноска
Как указывает @ dossy , следует избегать прямой передачи пользовательского ввода в код HTML.Используйте json_encode()
, чтобы избежать любого вредоносного кода или неправильного ввода.
<script>
var q = <?php echo json_encode($q); ?>;
</script>