Jquery 在 PHP if 语句中

Jquery inside PHP if statement

需要帮助将一些 jquery 函数放入 if 语句中。当数据库中的数据为空时,我想隐藏我的 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 ??

试试吧。不想调用任何函数。

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

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

                            ?>
                        <?php }?>

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

?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>

从来没有调用 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 元素应该在页面呈现时隐藏,有条件地将它们设置为隐藏(或者如果它们不应该可见,则根本不将它们发送到页面,具体取决于页面的动态功能).发出可见输出然后隐藏它很容易导致糟糕的用户体验。最好一开始就将其隐藏或根本不发出。

嗯,删除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 } ?>

试试这个

<!--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>

试试这个:

<?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; ?>