2012-04-16 18 views
1

フィルタリングシステムに問題があります。これは通知をフィルタリングしたいものです。フィルタリングは、すべての投稿にあるステータスIDを使用して動作する必要があります。たとえば、バグレポートにはステータスID nroがあります。 6.ドロップダウン選択による情報のフィルタリング

これは私が使用してjQueryのスクリプトです:

$(document).ready(function() { 
$("#status_option").change(              
    function(){ 
     var statusValue = $('#status_option option:selected').val(); 
     if(statusValue == "1"){ 
      <?php 
       $sql_status1="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID = '1' ORDER BY noticeID DESC"; 
       $result_status1=mysql_query($sql_status1); 
      ?> 
     } 
     else if(statusValue == "2"){ 
      <?php 
       $sql_status2="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID AND status.statusID = '2' ORDER BY noticeID DESC"; 
       $result_status2=mysql_query($sql_status2); 
      ?> 
     }          
     else if(statusValue == "3"){ 
      <?php 
       $sql_status3="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID AND status.statusID = '3' ORDER BY noticeID DESC"; 
       $result_status3=mysql_query($sql_status3); 
      ?> 
     } 
     else if(statusValue == "4"){ 
      <?php 
       $sql_status4="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID AND status.statusID = '4' ORDER BY noticeID DESC"; 
       $result_status4=mysql_query($sql_status4); 
      ?> 
     } 
     else if(statusValue == "5"){ 
      <?php 
       $sql_status5="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID AND status.statusID = '5' ORDER BY noticeID DESC"; 
       $result_status5=mysql_query($sql_status5); 
      ?> 
     }         
     else if(statusValue == "6"){ 
      <?php 
       $sql_status6="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID AND status.statusID = '6' ORDER BY noticeID DESC"; 
       $result_status6=mysql_query($sql_status6); 
      ?> 
     } 
     else{ 
      <?php 
       $sql_default="SELECT * FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID ORDER BY noticeID DESC"; 
       $result_default=mysql_query($sql_default); 
      ?> 
     } 
    } 
);}); 

ステータスをドロップダウンから選択される:

<select id="status_valinta" style="width:210px" > 
<option title="css/msdropdown_img/status_all.gif">All posts</option> 
<option value="1" title=".../status1.gif">Notification</option> 
<option value="2" title=".../status2.gif">Waiting for answer</option> 
<option value="3" title=".../status3.gif">Guide</option> 
<option value="4" title=".../status4.gif">Document</option> 
<option value="5" title=".../status5.gif">Image</option> 
<option value="6" title=".../status6.gif">Bug-report</option> 

問題は、私は、ステータスを選択したとき、私からしたいということですドロップダウンは何も起こりません。また、このフィルタリングシステムは、フィルタリングされた情報を同じページに動的に開くことによって機能するはずです。

印刷データが示すところこれがあるさ:

<table width="100%" id="notices" class="ui-widget ui-widget-content"> 
    <thead> 
     <tr class="ui-widget-header "> 
      <th>Subject</th> 
      <th>Sender</th> 
      <th>Comments</th> 
      <th>Timestamp</th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php 
      while($rows=mysql_fetch_array($result)){ // Starting looping rows 
     ?> 
      <tr style="background-color:<?php echo $rows['colorCode']; ?>"> 
       <td> 
        <a class="opener_notice, load_data" href="notice_v2.php?id=<?php echo $rows['noticeID']; ?>"> 
        <?php echo $rows['title']; ?> 
       </td> 
       <td><?php echo $rows['firstname']; ?> <?php echo $rows['lastname']; ?> 
       </td> 
       <td><?php echo $rows['commentID']; ?></td> 
       <td><?php echo date('d.m.Y, H:i:s', strtotime($rows['sendTime'])); ?> 
       </td> 
      </tr> 
     <?php 
      // Stopping the looping and closing the mysql connection 
      } mysql_close(); 
     ?> 
    </tbody> 
</table>  
+0

のようなものによって達成することができるが、あなたは明らかにこれがどのようにハック可能か分かりません。 MVCのポイントの1つは、ビューの書き込みからすべてのDB呼び出しを削除することです。もしあなたがこのように続けば、サイトは大部分が無担保になります。この作品は – SpYk3HH

答えて

0

あなたが作業しているHTMLページのソースを確認する必要があります....私が書かれたすべてのPHPコードを見て理解できるようcosをここでは、このスニペットで唯一のサーバーで実行され、jQueryのろ過にのみ空白があるでしょう。..

何を達成するためにワンがこの

$(document).ready(function() { 
<?php     // this code will be executed on the server 
    $sql_status1="SELECT status_id, status_value FROM notice, user, status WHERE notice.userID = user.userID AND notice.statusID = status.statusID ORDER BY noticeID DESC"; // considering status_id, status_value are the required attributes 
    $result_status1=mysql_query($sql_status1); 
    foreach(result_status1 as $res) 
     $json_obj_arr[$res[status_id]] = $res[status_value] 
    echo 'var notices = '.json_encode($json_obj_arr).';'; //and we will have a json abject in our html 
?> 
var notice_json = $.parseJSON(notices);  //we will parse this object 
$("#status_option").change(              
    function(){ 
     var statusValue = $('#status_option option:selected').val(); 
     alert(notice_json.statusValue); //and directly access the value corresponding to statusValue in the notice_json object 
    }) //end on change 
})// end document.ready 
+0

でしたか? –

+0

私はあなたの提案を試みたが、うまくいかなかった。私はjsonについて多くの知識を持っているわけではありませんが、私は成功せずにあなたのコードを微調整しようとしました。あなたのコードにはstatus_idとstatus_valueという値がありますが、ステータスIDのみがあり、id = "status_valinta"の値の番号として使用されます。 – user1174455

+0

ユーザーが何らかの値を選択したときに、何を警告しますか? –

関連する問題