我想根据类别显示它,但我被卡住了

时间:2014-01-03 07:57:54

标签: php jquery html

我想根据类别显示它但是我被卡住了...同时使用jquery和php都可以。我只是一个noobie ..

<select name="category" id="category" >
<option value="All Student">All Student<?php echo "(".$count.")";?></option>
<option value="By Name">By Name</option>
<option value="By Date">By Date</option>
</select>

<script type="text/javascript">
    $(document).ready(function(){
        $('#category').change(function(){
            if ($(this).val() == 'All Student') {
                <?php 
                    $query = mysql_query("SELECT * FROM table_student WHERE (teacher_id ='".$_SESSION['idnum']."') ORDER BY firstname");
                    while($row=mysql_fetch_array($query)){         //another way to get the data from database.........
                        $idnum = $row['idnum'];                 //getting the GroupID.....                                 display
                        $firstname = $row['firstname'];
                        $lastname = $row['lastname'];
                        $midname = $row['midname'];
                    }
                ?>                                                                                                      
                <table>
                    <td>
                        <p class="my_studz"><?php echo $firstname ." ".$lastname ." ".$midname?></p>
                    </td>
                </table>
                <?php } ?> 
            } else if ($(this).val() == 'By Name') {
                <?php 
                    $query = mysql_query("SELECT * FROM table_student WHERE (teacher_id ='".$_SESSION['idnum']."') ORDER BY Date_Created");
                    while($row=mysql_fetch_array($query)){         //another way to get the data from database.........
                        $idnum = $row['idnum'];                 //getting the GroupID.....                                 display
                        $firstname = $row['firstname'];
                        $lastname = $row['lastname'];
                        $midname = $row['midname'];
                    }
                ?>                                                                                                      
                <table>
                    <td>
                        <p class="my_studz"><?php echo $firstname ." ".$lastname ." ".$midname?></p>
                    </td>
                </table>
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:2)

Php是一种服务器的脚本语言。如果您正确使用它,它会生成一个有效的html页面。如果你想执行inline-javascript,你必须确保你的php也生成有效的javascript。

Javascript是一种客户端 - 支持的脚本语言。在php完成它的工作后很久就会执行它。如果你的php生成无效的javascript,那么javascript将什么都不做。

所以作为你的问题的回答“可以同时使用jquery和php”:同时执行jquery和php是不可能的。首先执行Php。无论生成什么都发送到浏览器,如果它包含任何javascript,则执行。您可以在页面的任何位置使用php,并且可以使用它生成javascript。请记住要始终通过php正确地转义你在javascript中输入的数据。名称';alert('xss');'";alert('xss');"不应该为您提供包含xss的弹出窗口。

答案 1 :(得分:0)

如果我说得对,你需要根据所选的名为“类别”的选择索引显示一个表。

请注意,PHP在客户端PC上的服务器和jQuery上执行。所以,不,他们不会同时运行。

以下是如何让PHP和jQuery为您工作。

  1. 您的脚本应该只包含javascript代码,当select的值发生变化时,该代码会根据其id隐藏或显示表。
  2. 移动输出脚本外部每个表的PHP代码。给每个人一个id <table id="allstudents"> <table id="byname"> <table id="bydate">
  3. 使用jQuery隐藏所有表$("#allstudents").hide(); $("#byname").hide(); $("#bydate").hide();
  4. 这应该有效。