尝试显示查询结果以显示在同一页面上

时间:2013-01-13 21:50:25

标签: php javascript jquery

我再次需要帮助......我正在尝试列出主类别列表,除了每个类别,还有一个查看按钮以查看其子类并显示在同一页面中。这是我的代码:

<table width="100%" align="center" style="margin-top:20px;">
<tr><td align="center"><font size="6">Categories</font></td></tr></table>
<?php
$sql = mysql_query("Select * FROM categories WHERE top_cat_id = 0")
?>
<div id="mainCat">
<form method="POST" id="viewSub" action="">
<table width="100%" align="center" class="categories">
<tr><td colspan="3" style="background-color:#000; color:#FFF; font-size:16px;">Main Categories</td></tr>
<tr><td align="center" width="10%" style="font-size:14px; font-weight:bold;">ID</td>
<td align="center" style="font-size:14px; font-weight:bold;">Categorie Name</td>
<td align="center" width="30%" style="font-size:14px; font-weight:bold;">Subcategories</td></tr>
<?php
while($data = mysql_fetch_array($sql))
{
    echo '<tr><input type="hidden" name="cat_id" id="cat_id" value="'.$data['cat_id'].'"><td align="center">'.$data['cat_id'].'</td>';
    echo '<td align="center">'.ucwords(strtolower($data['cat_name'])).'</td>';
    echo '<td align="center"><input type="submit" name="submit" value="View" /></td></tr>';
}
?>
</table></form>
</div>
<script type="text/javascript">
$(function() {
    $("#viewSub").bind('submit',function() {
        var cat_id = $('#cat_id').val();
        $.post('subcategories.php',{cat_id:cat_id}, function(data){
        $("#subCat").html(data);
        });
        return false;
    });
);
</script>
<div id="subCat">

</div>

正如你所看到的,我猜jQuery函数只听第一个View按钮,因为无论我点击按钮,它只返回第一个主类别的子。有没有办法使它工作?喜欢使用onclick动作?我对javascript不好,所以我需要帮助才能让这个工作......

谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个有效的代码:

<table width="100%" align="center" style="margin-top:20px;">
<tr><td align="center"><font size="6">Categories</font></td></tr></table>
<?php
$sql = mysql_query("Select * FROM categories WHERE top_cat_id = 0");
?>
<div id="mainCat">
<!--<form method="POST" id="viewSub" action="">-->
<table width="100%" align="center" class="categories">
<tr><td colspan="3" style="background-color:#000; color:#FFF; font-size:16px;">Main Categories</td></tr>
<tr><td align="center" width="10%" style="font-size:14px; font-weight:bold;">ID</td>
<td align="center" style="font-size:14px; font-weight:bold;">Categorie Name</td>
<td align="center" width="30%" style="font-size:14px; font-weight:bold;">Subcategories</td></tr>
<?php
while($data = mysql_fetch_array($sql))
{
    echo '<tr><input type="hidden" class="cat_id_'.$data['cat_id'].'" value="'.$data['cat_id'].'"><td align="center">'.$data['cat_id'].'</td>';
    echo '<td align="center">'.ucwords(strtolower($data['cat_name'])).'</td>';
    echo '<td align="center"><input type="button" class="viewData" name="'.$data['cat_id'].'" value="View" /></td></tr>';
}
?>
</table><!--</form>-->
</div>
<script type="text/javascript">
$(document).ready(function(){
    $(".viewData").click(function(){
        var cat_id = $(".cat_id_"+$(this).attr("name")).val();
       $.post('subcategories.php',{cat_id:cat_id}, function(data){
        $("#subCat").html(data);
        });
        return false;
    });
});
</script>
<div id="subCat">

</div>

我假设您的AJAX请求正常。

P.S。为SQL查询进一步使用预准备语句。因为这段代码不安全。