Функция JavaScript на странице PHP вызывает проблемы с форматом вкладок PHP - PullRequest
1 голос
/ 04 декабря 2009

Я пытаюсь сослаться на файл 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 ]

2 голосов
/ 04 декабря 2009

Я все еще не понимаю, что вы ожидаете, но уже вижу одну вещь: ВСЁ снаружи буквально транспонировано, таким образом

?>
<!DOCTYPE...

введет дополнительный пробел (перевод строки) в начале до DOCTYPE.

Также конец скрипта (->) вызовет синтаксическую ошибку JS. Это допустимый HTML, но его необходимо закомментировать (// ->) в JS.

2 голосов
/ 04 декабря 2009

Я пока не совсем понимаю ситуацию, но вам нужно знать, что на вашей странице нет ничего, связанного с PHP, только код HTML / CSS / Javascript, который был сгенерирован PHP . Поэтому вам нужно заглянуть в ваш HTML-код и увидеть, в чем проблема. Затем вы можете обновить свой вопрос с помощью действительного HTML-кода.

0 голосов
/ 04 декабря 2009
Теги

SCRIPT сами по себе не могут влиять на элементы или макет страницы.

Ваша проблема, вероятно, в другом месте. Для отладки я бы проигнорировал PHP и сосредоточился на выводе HTML, а также на поиск незакрытых тегов, неверной разметки и т. Д.

...