PHP if语句中的Jquery

时间:2015-03-04 08:07:06

标签: javascript php jquery codeigniter

需要帮助在if语句中放入一些jquery函数。当数据库中的数据为空时,我想隐藏我的div。我这样做了,什么都没发生。

                    <?php if(empty($all_data)){ ?>

                            <script>
                                $(document).ready(function () {
                                    $( '.table-wrapper').css("display","none");
                                });
                            </script>                       <===update

                    <?php }else{ ?>
                        <?php foreach($all_data->result() as $data){ ?>
                            <tr> 
                                <td><?php echo $data->id_history;?></td>
                                <td><?=$data->id_admin;?></td>
                                <td><?=$data->ipc;?></td>
                                <td><?=$data->task_date;?></td>
                                <td><?=$data->task_time;?></td>
                                <?php if ($data->id_task == 1){ ?>
                                    <td>Login Site</td>  
                                <?php }else{ ?>
                                    <td>Logout Site</td>
                                <?php } ?>
                                <td>-</td>
                            </tr>
                        <?php } ?>  
                    <?php } ?>

是否有可能在php中添加一些jquery?

6 个答案:

答案 0 :(得分:1)

什么都没有调用hiding()。所以你有条件地在PHP中定义那个函数,但你实际上从未调用它。如果您希望该函数的内容在if块中执行,则不要声明hiding()函数,只需执行代码:

<?php if(empty($all_data)){
          echo "<script>
                    $(document).ready(function () {
                        $( '.table-wrapper').hide();
                    });
                </script>";
      }else{ ?>
...

或者可能删除echo并直接发出输出,看起来可能更清晰一点:

<?php if(empty($all_data)){ ?>
<script>
    $(document).ready(function () {
        $( '.table-wrapper').hide();
    });
</script>
<?php }else{ ?>
...

但是,如果我是诚实的,那么隐藏在准备文件上可能并不是最好的方法。如果在页面呈现时应隐藏.table-wrapper元素,请将它们有条件地设置为隐藏(或者如果它们不应该是可见的,则根本不将它们发送到页面,具体取决于动态页面的功能)。发出可见输出然后隐藏它可能很容易导致糟糕的用户体验。最好先将其隐藏起来,或者根本不发射它。

答案 1 :(得分:1)

试试这个

<!--Always generate table-->
<div class='table-wrapper'>
    <table>
       <?php foreach($all_data->result() as $data){ ?>
          <tr> 
         <td><?php echo $data->id_history;?></td>
         <td><?=$data->id_admin;?></td>
         <td><?=$data->ipc;?></td>
         <td><?=$data->task_date;?></td>
         <td><?=$data->task_time;?></td>
         <?php if ($data->id_task == 1){ ?>
            <td>Login Site</td>  
         <?php }else{ ?>
            <td>Logout Site</td>
         <?php } ?>
         <td>-</td>
     </tr>
<?php } ?>  
</table>
</div>

<!-- Hide Wrapper if no data -->
<script>
var div = $(".table-wrapper");
if(div.html() == "<table></table>") {
   div.css("display","none");
}
</script>

答案 2 :(得分:0)

试试吧。不想要任何功能。

<?php if(empty($all_data)){ ?>
                            <?php 

                                    echo "<script>
                                            $(document).ready(function () {
                                                $( '.table-wrapper').hide();
                                            });
                                          </script>";

                            ?>
                        <?php }?>

答案 3 :(得分:0)

如果查询结果为空,只需要调用该函数:

?php if(empty($all_data)){ ?>
    <?php 
        echo "<script>hiding();</script>";
    ?>
<?php }else{ ?>
    <?php foreach($all_data->result() as $data){ ?>
        <tr> 
            <td><?php echo $data->id_history;?></td>
            <td><?=$data->id_admin;?></td>
            <td><?=$data->ipc;?></td>
            <td><?=$data->task_date;?></td>
            <td><?=$data->task_time;?></td>
            <?php if ($data->id_task == 1){ ?>
                <td>Login Site</td>  
            <?php }else{ ?>
                <td>Logout Site</td>
            <?php } ?>
            <td>-</td>
        </tr>
    <?php } ?>  
<?php } ?>

然后

<script>
       $(document).ready(function () {
        function hiding(){
           $( '.table-wrapper').hide();
        }
       });
</script>

答案 4 :(得分:0)

好吧,删除function hiding(){}。用PHP做这件事比较好,比如

<?php if(!empty($all_data)){ ?>
            <div class="table-wrapper">
              <?php foreach($all_data->result() as $data){ ?>
                            <tr> 
                                <td><?php echo $data->id_history;?></td>
                                <td><?=$data->id_admin;?></td>
                                <td><?=$data->ipc;?></td>
                                <td><?=$data->task_date;?></td>
                                <td><?=$data->task_time;?></td>
                                <?php if ($data->id_task == 1){ ?>
                                    <td>Login Site</td>  
                                <?php }else{ ?>
                                    <td>Logout Site</td>
                                <?php } ?>
                                <td>-</td>
                            </tr>
            <?php } ?>  
          </div>
<?php } ?>

答案 5 :(得分:0)

试试这个:

<?php if(empty($all_data)) : ?>

        <script>
            $(document).ready(function () {
                $( '.table-wrapper').css("display","none");
            });
        </script>

<?php else : ?>
    <?php foreach($all_data->result() as $data) : ?>

        <tr> 
            <td><?=$data->id_history;?></td>
            <td><?=$data->id_admin;?></td>
            <td><?=$data->ipc;?></td>
            <td><?=$data->task_date;?></td>
            <td><?=$data->task_time;?></td>

            <?php if ($data->id_task == 1) : ?>
                <td>Login Site</td>  
            <?php else : ?>
                <td>Logout Site</td>
            <?php endif; ?>

            <td>-</td>
        </tr>

    <?php endforeach; ?>  
<?php endif; ?>