Плагин jQuery (DataTables) правильно загружается только при обновлении страницы

У меня проблема с DataTables. Когда я перехожу на страницу с таблицей по ссылке на другой странице, она загружает только «текстовую» HTML-версию таблицы без форматирования из CSS и без JavaScript (сортировка, поиск и т. ). Однако, когда я обновляю страницу, она загружается отлично. После поиска ответа на эту проблему я обнаружил, что моя проблема может быть связана с JQm, поскольку он не загружает «весь» HTML-код при переключении между страницами. Я переместил свой стиль и теги JavaScript повсюду, но безуспешно. Я использую пример по умолчанию, найденный на веб-сайте DataTables, и не изменил никакого кода.

Я новичок в jQuery и веб-разработке в целом, поэтому, если кто-то может помочь мне с этим, я был бы очень признателен. Кроме того, если есть что-то еще, что я должен изменить, я определенно хочу узнать о лучших методах!

P.S. Я ссылаюсь на эту страницу, просто связывая ее с кнопкой.

Вот мой код:

<?php
require_once 'classes/Membership.php';
$membership = New Membership();

$membership->confirm_EventAdmin();
session_start();
$con = mysql_connect("mysql server","user","pass");
if(!$con){
    die('Could not connect: ' . mysql_error());
    }
mysql_select_db("clip_comp_server1", $con);

mysql_query("ALTER TABLE $_SESSION[adminEvent] ORDER BY Score DESC");

$query = "SELECT CandID,Score,Team FROM $_SESSION[adminEvent]";
$infoList = mysql_query($query);
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Event Scores and Rankings</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <link rel="stylesheet" href="/css/themes/CLIPTheme.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/clip_v1/DataTables-1.9.4/media/js/jquery.dataTables.js"></script>

<style type="text/css">
    h1 {
        text-align: center;
    }

    h4  {
        line-height: 1.5;
    }

    .ui-btn-active { color: white !important; background: none !important; background-color: #006600 !important;  }
    .ui-btn-inner {border: 0;}
</style>
<style type="text/css">
    @import "/clip_v1/DataTables-1.9.4/media/css/demo_table.css";
    @import "/clip_v1/DataTables-1.9.4/media/css/demo_page.css";
</style>
</head>
<body>

    <div data-role="page" data-theme="a" data-content-theme="a" id="page" data-add-back-btn="true">
    <div data-role="header" data-position="fixed">
    <div>
        <h1>Event Scores and Rankings</h1>
    </div>
    <!--a href="#" data-role="button" data-rel="back" data-icon="arrow-l" style="height: 80%"><span style="font-size: 1.75em">Back</span></a-->


        <div data-role="navbar" data-grid="c" class="ui-navbar ui-mini" role="navigation" style="border: 0;">
            <ul class="ui-grid-c">
                <li class="ui-block-a"><a href="eventRegister.php" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-theme="a" data-inline="true" class="ui-btn ui-btn-inline ui-btn-up-c"><span class="ui-btn-inner"><span class="ui-btn-text" style="font-size: 1.5em">Registration</span></span></a></li>
                <li class="ui-block-b"><a href="teamAssigner.php" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-theme="a" data-inline="true" class="ui-btn ui-btn-inline ui-btn-up-c"><span class="ui-btn-inner"><span class="ui-btn-text" style="font-size: 1.5em">Teams</span></span></a></li>
                <li class="ui-block-c"><a href="scoreDisplay.php" class="ui-btn ui-btn-inline ui-btn-up-c ui-btn-active" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-theme="a" data-inline="true"><span class="ui-btn-inner"><span class="ui-btn-text" style="font-size: 1.5em">Stats</span></span></a></li>
                <li class="ui-block-d"><a href="challengeContent.php" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-theme="a" data-inline="true" class="ui-btn ui-btn-up-c ui-btn-inline"><span class="ui-btn-inner"><span class="ui-btn-text" style="font-size: 1.5em">Challenges</span></span></a></li>
            </ul>
        </div>
    </div>
    <div data-role="content" style="border: 0">     

          <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
        <thead>
          <tr>
            <th>ID</th>
            <th>Score</th>
            <th>Rank</th>
            <th>Team</th>
          </tr>
        </thead>
        <tbody>
          <?php
            $rank = 1;
            while ($index = mysql_fetch_row($infoList)) {
                echo "<tr class=\"odd gradeA\">";
                echo "<td class=\"center\">" . $index[0] . "</td>";
                echo "<td class=\"center\">" . $index[1] . "</td>";
                echo "<td class=\"center\">" . $rank . "</td>";
                echo "<td class=\"center\">" . $index[2] . "</td>";
                echo "</tr>";
                $rank = $rank + 1;
                if ($index = mysql_fetch_row($infoList)) {
                    echo "<tr class=\"even gradeA\">";
                    echo "<td class=\"center\">" . $index[0] . "</td>";
                    echo "<td class=\"center\">" . $index[1] . "</td>";
                    echo "<td class=\"center\">" . $rank . "</td>";
                    echo "<td class=\"center\">" . $index[2] . "</td>";
                    echo "</tr>";
                    $rank = $rank + 1;
                }
            }
          ?>          
        </tbody>
        <tfoot>
          <tr>
            <th>Candidate ID</th>
            <th>Score</th>
            <th>Rank</th>
            <th>Team Assignment</th>
          </tr>
        </tfoot>
      </table>
    </div>
    </div>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
    $('#example').dataTable();
} );
</script>
</body>
</html>

Благодарю вас!


person Kavin2468    schedule 11.11.2012    source источник


Ответы (1)


Попробуйте разместить все ресурсы локально (jQmobile css, jQuery, jQmobile).

Примечание: я вижу, что вы используете PHP. Сделайте себе одолжение и используйте PDO или mysqli_* вместо mysql_*. Подробнее здесь: Преимущества MySQLi перед MySQL

person Maktouch    schedule 17.12.2012