Функция JavaScript на странице PHP вызывает проблемы с форматом вкладок PHP
Я пытаюсь сослаться на файл JavaScript, содержащий функцию сортировки таблиц, в файле PHP. Все работает так, как должно, но как только я добавлю приведенный ниже код на свою страницу отчетов PHP, это вызовет проблемы с форматом вкладок на моей странице навигации. Та же проблема возникает, если я добавлю случайный document.write
вне кода PHP. Не большая проблема, но довольно неприглядная для пользователя.
Есть ли лучший способ ссылаться на исходный документ JavaScript, который не будет мешать моему формату страницы навигации php? Я чувствую, что есть простое решение, которое я не понимаю.
<script language="JavaScript" src="include/sorttable.js"></script>
Также использовал PHP echo
внутри тегов PHP, чтобы сделать вызов, та же проблема.
Вот часть кода навигации для вкладок, над которыми возникает проблема с форматированием.
<?php
//////////////////////////////////////////////////////////////////////////////////////////////////
function start_page_printer_friendly(
$section = "home",
$headContents = null,
$bodyAttributes = null
)
//////////////////////////////////////////////////////////////////////////////////////////////////
{?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title><?php print $page_title; ?></title>
<link href="/trellis_portal/include/portal.css" media="screen"
rel="Stylesheet" type="text/css" />
<?php if ( ! is_null($headContents)) { print $headContents; } ?>
</head>
<body onload="printpage();" <?php if ( ! is_null($bodyAttributes)) { print $bodyAttributes; } ?>>
<script language="JavaScript">
<!--
function printpage() { window.print(); }
-->
</script>
<br />
<?php
}
//////////////////////////////////////////////////////////////////////////////////////////////////
function start_page( $section = "home",
$subsection = null,
$headContents = null,
$bodyAttributes = null
)
//////////////////////////////////////////////////////////////////////////////////////////////////
{
if (isset($_GET['printer']))
{
start_page_printer_friendly();
return;
}
$section = strtolower($section);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title><?php print $page_title; ?></title>
<?php if ( ! is_null($headContents)) { print $headContents; } ?>
</head>
<body class=" yui-skin-sam" <?php if ( ! is_null($bodyAttributes)) { print $bodyAttributes; } ?>>
<br />
<div id="header">
<ul>
<!--
<li><a class="<?php print tabSelector($section, 'executive'); ?>"
href="/trellis_portal/portal.php?section=executive&title=Executive">Executive</a></li>
<li><a
class="<?php print tabSelector($section, 'community'); ?>"
href="/trellis_portal/portal.php?section=community&title=Community">Community</a></li>
-->
<li><a class="<?php print tabSelector($section, 'trellis'); ?>"
href="/trellis_portal/portal.php?section=trellis&title=Trellis">Trellis</a></li>
<!--
3 ответа
Я до сих пор не понимаю, чего вы ожидаете, но уже вижу одно: все снаружи буквально транспонируется, таким образом,
?>
<!DOCTYPE...
введет дополнительный пробел (перевод строки) в начале до DOCTYPE.
Также окончание скрипта (->) вызовет синтаксическую ошибку JS. Это действительный HTML, но его необходимо закомментировать ( //->) в JS.
Я пока не совсем понимаю ситуацию, но вам нужно знать, что на вашей странице нет ничего, связанного с PHP, только код HTML/CSS/Javascript, который был сгенерирован PHP. Поэтому вам нужно заглянуть в ваш HTML-код и увидеть, в чем проблема. Затем вы можете обновить свой вопрос с помощью фактического HTML-кода.
Сами по себе тегиSCRIPT не могут влиять на элементы или макет страницы.
Ваша проблема, вероятно, в другом месте. Для отладки я бы проигнорировал PHP и сосредоточился на выводе HTML, а также на поиск незакрытых тегов, неверной разметки и т. Д.