0

データベースに接続してデータを取得する方法を見つけましたが、テーブルの列を非表示/表示しようとするとうまくいかないようです.Ajaxで可能かどうかさえわかりません.

私のHTML:

<table class="footable" id="masterChart">
            <thead><tr><th data-class="expand" class="account">Account Number</th><th>Account Description</th><th>Level 01</th><th>Level 02</th><th>Level 03</th><th>Level 04</th><th>Tax</th><th>YTD - Current</th><th>YTD - Prior</th><th>MTD - Current</th><th>MTD - Prior</th></tr></thead>

            <?php $index = 0?>

            <?php while ($row = mysql_fetch_assoc($result)):?>

            <tr<?php echo $index++ % 2 ? ' class="even"' : ''?>>
                <td><?php echo $row['accountNumber']?></td>
                <td><?php echo $row['accountDescription']?></td>
                <td><?php echo $row['accountLevel1']?></td>
                <td><?php echo $row['accountLevel2']?></td>
                <td><?php echo $row['accountLevel3']?></td>
                <td><?php echo $row['accountLevel4']?></td>
                <td><?php echo $row['id']?></td>
                <td><?php echo $row['id']?></td>
                <td><?php echo $row['id']?></td>
                <td><?php echo $row['id']?></td>
                <td><?php echo $row['id']?></td>
            </tr>

            <?php endwhile?>

        </table>

私のdbconn.php:

 <?php
  include_once('../classes/profile.class.php');

  $host = "localhost";
  $user = "root";
  $pass = "root";

  $databaseName = "accounting";
  $tableName = "login_table_display";

  //--------------------------------------------------------------------------
  // 1) Connect to mysql database
  //--------------------------------------------------------------------------

  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);

  //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $user = $profile->getField('user_id');
  $result = mysql_query("SELECT * FROM '$tableName' WHERE user = '$user'");          //query
  $array = mysql_fetch_row($result);

  echo json_encode($array);
?>

profile.class.php を使用して user_id を取得します。

私のアヤックス:

$(function () 
  {
    //-----------------------------------------------------------------------
    // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
    //-----------------------------------------------------------------------
    $.ajax({                                      
      url: 'dbconn.php',                  //the script to call to get data          
      data: "",                        //you can insert url argumnets here to pass to api.php
                                       //for example "id=5&parent=6"
      dataType: 'json',                //data format      
      success: function(data)          //on recieve of reply
      {
        var user = data[1];              //get id
        var table = data[2];            //get table name
        var column = data[3];           //get column
        var show = data[4];          //display or hide
        //--------------------------------------------------------------------
        // 3) Update html content
        //--------------------------------------------------------------------
        if (show == 0){
       $(table +'td:nth-child('+ column +'),th:nth-child('+ column +')').hide();
        //recommend reading up on jquery selectors they are awesome 
        // http://api.jquery.com/category/selectors/
        }
      } 
    });
}); 

上記の ajax.js ファイルを次のようにファイルに含めました。

<script src="ajax/ajax.js" type="text/javascript"></script>

誰かが助けたり助けたりできるなら、本当に感謝しています!データベース情報を取得し、特定の列、ユーザーのテーブルを非表示にする別の方法があれば、それもありがたいです。

4

2 に答える 2

2

HTML の完全な構造を提供できますか? ajax リクエストを呼び出す前にテーブルから始めますか?

それに加えて、これを更新してみてください:

if (show == 0){
  $(table +'td:nth-child('+ column +'),th:nth-child('+ column +')').hide();
}

これとともに:

if (show == 0){
  $(table +' td:nth-child(' + column + '),' + table + ' th:nth-child(' + column + ')').hide();
}
于 2013-06-12T09:10:48.023 に答える
0

わかりましたので、私はそれを正しく理解しました:

../classes/profile.class.php と思われる profile.class.php を間違って追加しました

その上、jqueryが間違っていた、

これ:

$(table +'td:nth-child('+ column +'),th:nth-child('+ column +')').hide();

これである必要があります:

$('#'+ table +' td:nth-child(' + column + '), #' + table + ' th:nth-child(' + column + ')').hide();

そして、ユーザーの選択に基づいて表示/非表示の値を見つけています:)

于 2013-06-12T10:02:05.693 に答える