0

CSV ファイルのコンテンツを読み取り、選択した列をページ内のユーザー表示する単純な PHP ページを作成しています 。現在、各行を読み取ってすぐに表示しています。この方法のため、ファイル全体の読み取りが終了した後(ファイル内の検索も)、行の合計しかわかりません。私が欲しいのは、リストの上部と下部に 2 つのページ ナビゲーションを表示することです。このような:

ページ 1|2|3|4


フィールド 1|フィールド 2|フィールド 3|フィールド 4|フィールド 5....|フィールド n

行1

行 2

....

ロウン


ページ 1|2|3|4

すべての行、一番下のページ ナビを表示した後、jquery 関数: insertBefore を使用して、別のページ ナビを一番上に挿入しました。

問題は次のとおりです。

1) トップページのナビがIE8では表示されず、F5を押すと表示される(FF、Chromeでは動作)。

2) insertBefore 関数を使用すると、一番下のページを表示した後、トップページのナビゲーションが突然ポップアップします。自然に見えない

なにか提案を?

ソースコード:

簡単にするために、これら 2 つの単純なソース ファイルを書き直します。
-FileList.php: すべての csv ファイルを一覧
表示します -DisplayInList.php: CSV ファイルの内容を表示します

ところで:FileList.phpのjqueryコードを変更することで、すでに問題を解決しました

            FileList.php
            <?php
                    echo "<script type=\"text/javascript\">\n";
                    echo "$(document).ready(function(){\n";
                    echo "$('a[name=dlink]').click(function(e) {\n";
                    echo "    e.preventDefault();\n";
                    echo "    var href = $(this).attr('href');\n";
                    echo "    $.post('DisplayInList.php',{href:href}, function(response)\n";
                    echo "     list_window = window.open()\n";
                    echo "     list_window.document.write(response);\n";
                    echo "     list_window.focus();\n";
                    echo "     list_window.document.close();\n";
                    echo "    });\n";
                    echo " });\n";
                    echo "});\n";
                    echo "</script>\n";


                    //add CSV file link here
                    foreach($file_list as $f){
                        $display_name = "WHATEVER";
                        echo "<TR><TD><a name=\"dlink\" href=",pathinfo($f,PATHINFO_FILENAME),">",$disp_name,"</a></TD>\n";
                    }
            ?>

            DisplayInList.php

            <?php
                echo "<div id=\"paging_tag\"></div>\n";
                if (($handle = fopen($csv_file, "r")) !== FALSE){
                    $display_cnt = 0;
                    while (($line = fgetcsv($handle, 10000, ",")) !== FALSE){
                        $found = {Check search conditions};
                        if ( $found == true ){
                            $display_cnt++;
                            //Display line to client
                            echo "Selected fields of a csv line to user";
                        }
                    }
                    fclose($handle);
                }

                if ( $display_cnt > 0 ){
                    echo "<p id=\"paging\"><span>PREVIOUS</span> Page 1 | Page 2 | Page 3<span>NEXT</span></p>";
                }

                echo "<script type=\"text/javascript\">\n";
                echo "$('#paging')\n";
                echo "          .insertBefore('#paging_tag');\n";
                echo "</script>";
            ?>
4

1 に答える 1

0

js を使用して UI を形成する方法は、優先順位が最も低い方法です。サーバーサイドおよび HTML/CSS メソッドを使用できる場合は常に、javascript を使用しないでください。

たとえば、PHPを使用することをお勧めします。

$pagerHtml = 'do some code here';
print $pagerHtml; //the first place on top
/*
...
output HTML between the two pager lines
...
*/
print $pagerHtml //the bottom pager line
于 2012-06-03T07:21:09.010 に答える