Функция JavaScript на странице PHP, вызывающая проблемы с форматом вкладок PHP

StackOverflow https://stackoverflow.com/questions/1847566

Вопрос

Я пытаюсь сослаться на файл 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>
<!-- 
Это было полезно?

Решение

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

?>
<!DOCTYPE...

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

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

Другие советы

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

СЦЕНАРИЙ теги сами по себе не могут влиять на элементы или макет страницы.

Ваша проблема скорее всего в другом.Чтобы отладить это, я бы проигнорировал PHP и сосредоточился на выводе HTML и искал незакрытые теги, недопустимую разметку и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top