我不需要在php if结构中显示div。 我在做:
<?php
$a = $_POST['somefiledcomingFromform'] ; //equals 1
if (isset($_POST['submit'])) {
if($a==1){
// echo"<script>$(document).ready(function() { $('.delete').css(\"display\", \"none\")});</script>";
echo"<script>$('.delete').css(\"display\", \"none\");</script>";
}
}
echo"<div class='delete'>Delete me</div>";
?>
但它不起作用,div显示我在de里面使用的是什么行并不重要.. 我究竟做错了什么?
万分感谢
答案 0 :(得分:2)
为什么不做这样的事情,而不是放入JavaScript:
<?php
$a = 1;
if ($a == 1) {
echo '<div class="delete" style="display:none;">Delete me</div>';
} else {
echo '<div class="delete">Delete me</div>';
}
答案 1 :(得分:1)
试试这个
<?php
$a=1;
if($a==1){
echo"<div class='delete' style="display:none;">Delete me</div>";
}
else{
echo"<div class='delete'>Delete me</div>";
}
?>
答案 2 :(得分:1)
你可以这样做:
<?php $a=1; if($a==1) : ?>
<script>
$(document).ready(function() {
$('.delete').css("display", "none")
});
</script>
<?php endif; ?>
<div class='delete'>Delete me</div>
但我认为最好做下面的事情:
<?php $a = 1; ?>
<script>
$(document).ready(function() {
$('.delete').css("display", "none")
});
</script>
<div class="<?php echo $a == 1 ? 'delete':'' ?>">Delete me</div>
答案 3 :(得分:0)
<?php
$a=1;
if($a==1){
// echo"<script>$(document).ready(function() { $('.delete').css(\"display\", \"none\")});</script>";
echo"<script>$(function(){$('.delete').css(\"display\", \"none\");});</script>";
}
echo"<div class='delete'>Delete me</div>";
?>
答案 4 :(得分:0)
我认为隐藏是最好的。把css留给你的css文件?
echo"<script>$('.delete').hide();</script>";
编辑:还有你的javascript!
答案 5 :(得分:0)
为什么使用jQuery来尝试实现这一目标?只需使用CSS。
或者,至少,使用jQuery的“live”来解决DIV的HIDE / SHOW。执行顺序很重要,我认为PHP生成的脚本实际上不会影响您正在构建的潜水并在PHP条件之后显示。
答案 6 :(得分:0)
在接收点击功能的元素打印在页面上之前,您的jQuery调用已完成。
您可以使用自己的注释行代替直接通话。
echo"<script>$(document).ready(function() { $('.delete').css(\"display\", \"none\")});</script>";
如果您想使用未注释的电话,则需要在div标签后打印。
<?php
echo"<div class='delete'>Delete me</div>";
$a=1;
if($a==1){
echo"<script>$(function(){$('.delete').css(\"display\", \"none\");});</script>";
}
?>
答案 7 :(得分:0)
对于初学者,你实际上并没有使用jQuery来改变PHP。 jQuery是客户端的,PHP是服务器端的,而且twain不会满足。实际发生的是你使用PHP来创建HTML文档,浏览器将创建一个jQuery将操作的DOM。
至于你的脚本有什么问题,你的代码不起作用的原因是因为这些语句是按顺序回应的。
以下内容不起作用:
<script>
$('.delete').css("display","none"); // div.delete doesn't exist yet
</script>
<div class="delete">Delete me</div> <!-- Output *after* the jQuery call. -->
以下工作正常:
<script>
$( function(){ //wait until document.ready
$( '.delete' ).hide(); //hide .delete after ready
} );
</script>
<div class="delete">Delete me</div> <!-- Output after <script> but will be hidden after document.ready -->
除了这个问题之外,还有一些“代码味道”让我对你的代码感到担忧。请注意,这些都不是技术错误,但它们往往表明其他问题。:
.hide()
调用。$( '.delete' ).css( "display", "none");
...为什么?