1

Jquery-UI タブを使用するページを作成しています。各タブは異なる php ページを呼び出します。

各 php タブ ページは、php include() 関数を使用して、ロード時に別の php ページに戻ります。各phpタブページには、ページの上部にjqueryがあり、mysqlレコードをナビゲートするボタンを制御しています。ボタンが押されると、Jquery は最初にタブに読み込まれた同じ php スクリプトに投稿します。

最初に含まれていて、ナビゲーション ボタンに添付された Jquery に投稿されたスクリプトは、mysql db からテーブルを保持するフォームを返します。

操作中、ユーザーがタブをクリックすると、ロード時にフォームが含まれます。ユーザーは、左右の矢印を使用してデータベース内の値をスクロールできます。矢印を押すたびに、Jquery ポストがフォームに送信され、同じ php スクリプトが含まれますが、mysql 値が更新されます。

これまでのところこれでうまくいきますが、問題はタブを切り替えるときです。タブは、異なるフォームと異なるテーブルへの mysql クエリを含むという意味でのみ異なります。それ以外は同じように動作します。

ユーザーがナビゲーション ボタンを押すと、データベースに次の値を問い合わせるために、主キーの値を含むフィールドが送信されます。Jquery は、フォーム入力で name オプションを使用して主キー値を保持しています。

最初は、ページが読み込まれず、Jquery が間違った値を渡すという問題があるかもしれませんが、フォームの入力名に各タブで同じ名前を付けようとしましたが、タブごとに異なる名前を付けようとしましたが、どちらの方法でも同じ結果になります。

何が起こるかというと、ページの読み込み時に、タブをクリックするとナビゲートが正常に機能します。ただし、別のタブをクリックすると、ナビゲーションが機能しなくなります。

含まれているデータベース フォーム スクリプトに echo ステートメントを配置した後、新しいタブを選択した後、ナビゲーション ボタンがナビゲーション ボタンで php データベース スクリプトを呼び出さなくなったことに気付きました。フォームの「ページ読み込み時」バージョンでスタックしているようです。

長い説明、アイデアはありますか?

1. Index.html page (Jquery Tabs)

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
      <title>Some Title</title>
      <link rel="stylesheet" href="css/jquery-ui-1.10.2.custom.css" />
      <link rel="stylesheet" href="css/mainstyle.css" />
      <link rel="stylesheet" href="css/newstyle.css" />
      <script src="js/jquery.js"></script>
      <script src="js/jquery-ui-1.10.2.custom.js"></script>
      <script src="js/cookie.js"></script>

    <script>
     $(function() {
    var index = 'key';
    var dataStore = window.sessionStorage;

    try {
        var oldIndex = dataStore.getItem(index);
    } catch(e) {
        var oldIndex = 0;
    }
    $('#tabs').tabs({
        active : oldIndex,
        activate : function( event, ui ){
            var newIndex = ui.newTab.parent().children().index(ui.newTab);
            dataStore.setItem( index, newIndex ) 
        }
    }); 
    }); 
      </script>

    </head>
    <body>
     <div id="top"><img id="headimg" src="css/images/header.gif" alt="heading"/></div>

    <div id="middle">
            <div id="tabs">
              <ul>
                <li><a href="#tabs-1" class="button">Site Home</a></li>
                <li><a href="php/page1.php" class="button">First Tab</a></li>
                <li><a href="php/page2.php" class="button">Second Tab</a></li>
                <li><a href="php/page3.php" class="button">Third Tab</a></li>
                <li><a href="php/page4.php" class="button">Forth Tab</a></li>
                <li><a href="php/page5.php" class="button">Fifth Tab</a></li>
              </ul>
            <div id="tabs-1" class="content">
            </div>
          </div>
    </div>
    <div id="footer" class="smaller">
    </div>
    </body>
    </html>


2. page1.php



    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <link rel="stylesheet" href="css/newstyle.css" />
    <script src="js/jquery-ui-1.10.2.custom.js"></script>
    </head>
    <script>
    $(document).ready(function() {

    $(".prev span").live("click",function(){
        var id = $('input[name="contactid"]').val();
        $.post("php/aec_database.php",
        {pn:id},function(data){$("#dbform").html(data);});});

    $(".next span").live("click",function(){
        var id = $('input[name="contactid"]').val();
        $.post("php/aec_database.php",
        {nn:id},function(data){$("#dbform").html(data);});});

    $(".first span").live("click",function(){
        var id = $('input[name="contactid"]').val();
        $.post("php/aec_database.php",
        {fn:id},function(data){$("#dbform").html(data);});});

    $(".last span").live("click",function(){
        var id = $('input[name="contactid"]').val();
        $.post("php/aec_database.php",
        {ln:id},function(data){$("#dbform").html(data);});});
    });

    </script>

    <body>
    <div id="alerts_main" class="content">
        <div id="dbform">
        Original
        <?php include 'aec_database.php'; ?>
        </div>
    </div>
    </body>
    </html>


3. aec_database.php


    <?php
    include("conf.php");

    if(isset($_POST['pn'])){$prev = $_POST["pn"];}
    if(isset($_POST['nn'])){$next = $_POST["nn"];}
    if(isset($_POST['ln'])){$last = $_POST["ln"];}
    if(isset($_POST['fn'])){$first = $_POST["fn"];}



    $firstvalue = mysqli_query($con, "SELECT * FROM `Systems` ORDER by System_ID ASC LIMIT 1");
    while($row = mysqli_fetch_array($firstvalue))
      {
          $fvalue = $row['System_ID'];
      }
    $lastvalue = mysqli_query($con, "SELECT * FROM `Systems` ORDER by System_ID DESC LIMIT 1");
    while($row = mysqli_fetch_array($lastvalue))
      {
          $lvalue = $row['System_ID'];
      }

    if ($prev == $fvalue){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID = '$prev'");
    }
    elseif($next == $lvalue){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID = '$next'");
    }
    elseif(isset($prev)){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID < '$prev' ORDER by System_ID DESC LIMIT 1");
    }
    elseif(isset($next)){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID > '$next' ORDER by System_ID ASC LIMIT 1");
    }
    elseif(isset($first)){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID = '$fvalue'");
    }
    elseif(isset($last)){
        $result = mysqli_query($con, "SELECT * FROM `Systems` WHERE System_ID = '$lvalue'");
    }
    else{   
        $result = mysqli_query($con, "SELECT * FROM `Systems` ORDER by System_ID ASC LIMIT 1");
    }

    while($row = mysqli_fetch_array($result))
      {
          $si = $row['System_ID'];
          $ai = $row['Additional_Information']; 
      }
        echo "
        <form>

    <div id='sites_sec2' class='sites_sec_class'>   
        <div id='a2' class='sites_sub_sec_class'>
        <div class='field'>
        <label for='contactid'>System ID:</label>
    <div class='field-subject'><input type='text' name='contactid' value='".$si."' /></div>
    </div>
            <div class='field'>
                <label for='ai'>Add Info:</label>
                <div class='field-subject'><input type='text' name='ai' value='".$ai."' /></div>
            </div>  
        </div>


    </div>  
        <div id='hrsep'><hr></div>
            <div id='buttons'>
            <div class='first'><span><a href='#'><img src='css/images/icons/leftend.png' /></a></span></div>
            <div class='prev'><span><a href='#'><img src='css/images/icons/leftarrow.png' /></a></span></div>
            <div class='next'><span><a href='#'><img src='css/images/icons/rightarrow.png' /></a></span></div>
            <div class='last'><span><a href='#'><img src='css/images/icons/rightend.png' /></a></span></div>
        </div>
        </form>";
     ?>




4. conf file


    <?php
    global $mysqli;
    //server info
    //server info
    $server = 'localhost';
    $user = 'xx';
    $pass = 'xx';
    $db = 'xx';



    //connect to db
    $con = mysqli_connect($server, $user, $pass, $db);
    //mysqli_query('SET NAMES UTF8;');
    //mysqli_query('SET COLLATION_CONNECTION=utf8_general_ci;');
    //mysqli_client_encoding($con);// where $conn is your connection
    if(mysqli_connect_errno()){
        printf("Connect failed: %s\n", mysqli_connect_error());
    } 
    //show errors
    mysqli_report(MYSQLI_REPORT_ERROR);
?>
4

0 に答える 0