需要帮助在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?
答案 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; ?>