3

ページの読み込み中に最初にいっぱいになるテーブルがあります。現在、検索結果をフィルタリングするpost関数があるテーブルをフィルタリングするための検索ボタンがありますが、そうでないテキストボックスを検索するたびに読み込まれます。良い。検索するたびにグリッドをロードするには、ajaxまたはJsonまたはJavaScriptコードが必要です。

私のテーブル:

      <table align="center" class="sortable" border="1" width="900px">
        <tr > 
      <td class="sorttable_nosort" style=" font-weight:bold; text-align:center">Select</td>
      <td class="sorttable_nosort" style=" font-weight:bold; text-align:center">Action</td>
      <td style=" font-weight:bold;">Product Code</td>
      <td style=" font-weight:bold;">Warranty Periods In Months</td>
      <td style=" font-weight:bold;">ProRata Period In Months </td>
      <td style=" font-weight:bold;">Manufacturer Date</td>
      <td style=" font-weight:bold;">Applicable Form Date</td></tr>
     <?php
          // This while will loop through all of the records as long as there is another record left. 
          while( $record = mysql_fetch_array($query))
        { // Basically as long as $record isn't false, we'll keep looping.
          // You'll see below here the short hand for echoing php strings.
          // <?=$record[key] - will display the value for that array.
        ?>

         <tr>
         <td bgcolor="#FFFFFF" style=" font-weight:bold; text-align:center"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $record['ProductCode']."~".$record['ManufactureDate']; ?>"></td>
         <td bgcolor="#FFFFFF" style=" font-weight:bold; text-align:center"> <a style="color:#FF2222" name="edit" href="productwarrantymaster.php?<?php if(($row['editrights'])=='Yes') { echo 'ProductCode='; echo $record['ProductCode'];echo '&ManufactureDate=';echo $record['ManufactureDate'];} else echo 'permiss'; ?>">Edit</a></td>
         <td  bgcolor="#FFFFFF"><?=$record['ProductCode']?>  </td>
         <td  bgcolor="#FFFFFF"  ><?=$record['WarrantyPeriod']?></td>
        <td  bgcolor="#FFFFFF"> <?=$record['ProRataPeriod']?> </td>
         <td  bgcolor="#FFFFFF"  >  <?=$record['ManufactureDate']?> </td>
        <td  bgcolor="#FFFFFF" >  <?=$record['ApplicableFormDate']?>   </td></tr>

      <?php
          }
      ?>
    </table>

ここにも追加されているグリッドを埋めるために、ページネーションコードも使用しました。

私のPOST関数:

if(isset($_POST['Search']))
{
if(isset($_POST['codes'])||isset($_POST['names']))
{
    if(empty($_POST['codes'])&&empty($_POST['names']))
    {
        ?>
            <script type="text/javascript">
            alert("Enter text Field!!");document.location='productwarrantymaster.php';
            </script>
            <?
    }
    else
    {
    if(!empty($_POST['codes'])&&!empty($_POST['names']))
    {
        $condition="SELECT * FROM productwarranty WHERE ProductCode like'%".$_POST['codes']."%' AND ManufactureDate like'".
        $_POST['names']."%'";

    }
    else if(!empty($_POST['codes'])&&empty($_POST['names']))
    {
        $condition="SELECT * FROM productwarranty WHERE ProductCode like'%".$_POST['codes']."%'";

    }
    else if(!empty($_POST['names'])&&empty($_POST['codes']))
    {
        $condition="SELECT * FROM productwarranty WHERE ManufactureDate like'".$_POST['names']."%'";

    }
    else
    {

        $condition="SELECT * FROM productwarranty WHERE 1";
    }

    $refer=mysql_query($condition);
    $myrow1 = mysql_num_rows($refer);
    //mysql_fetch_array($query);

    $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
        $limit = 10;
        $startpoint = ($page * $limit) - $limit;
        //to make pagination
        $statement = "productwarranty";
         //show records
         $starvalue = $myrow1;
       $query = mysql_query("{$condition} LIMIT {$startpoint} , {$limit}");
        if($myrow1==0)  
        {
            ?>
            <script type="text/javascript">
            alert("Entered keyword not found!!");document.location='productwarrantymaster.php';
            </script>
            <?

        }
    }
}

}

私の検索テーブル:

        <div style="width:80px; height:30px; float:left; margin-left:3px; margin-top:16px;" >
                                <label>Product Code</label>
                               </div>
                               <div style="width:145px; height:30px;  float:left; margin-left:3px; margin-top:16px;">
                                 <input type="text" name="codes" value=""/>
                               </div>
                             <!--Row1 end-->  

                               <!--Row2 -->  
                               <div style="width:80px; height:30px; float:left; margin-left:3px; margin-top:9px;">
                                  <label>Manufacturer Date</label>
                               </div>
                               <div style="width:145px; height:30px;  float:left; margin-left:3px; margin-top:16px;" >
                                 <input type="text"  id="searchdate" name="names" value=""/>
                               </div>
                             <!--Row2 end-->

                             <div style="width:83px; height:32px; float:left; margin-top:16px;">
                                <input type="submit" name="Search" value="" class="button1"/>
                               </div>

この問題について私を助けてください。よろしくお願いします:P

4

1 に答える 1

0

jQuery はデータの読み込みが非常に得意です

これは、これを達成するための一般的な方向性です。

  1. JSON を出力するように php を変更します。 http://php.net/manual/en/function.json-encode.php
    php スクリプトはスタンドアロンです。ブラウザでスクリプトを単独で呼び出すと、JSON が画面に出力されます。jQuery はこのスクリプトを呼び出し、出力を収集します。
  2. 既存のテーブルを削除します: (このようなもの) $('#mytable').remove();
    正面からテーブルを片付けます。次のステップでは、新しいものを追加します。
  3. JSON の取得:: http://api.jquery.com/jQuery.getJSON/
    上記のリンクは、php ファイルを呼び出して JSON を解析する方法を示しています。
  4. jQuery でテーブルを再構築します。上記のリンクは、データを出力する方法も示しています。
于 2012-11-29T12:13:56.523 に答える