我有过滤系统的问题,我想过滤通知。过滤应该使用每个帖子都有的状态ID,例如bug-report具有状态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 :(得分:0)
你应该检查你正在处理的html页面的来源....因为我可以看到并理解这里写的所有PHP代码只会在服务器上执行,并且在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