我正在尝试,可能非常糟糕,根据div是否具有某个类,编写一个if
语句来更改传递给foreach循环的php变量。
我的代码并非真正有效
<script>
if ($(".howto-one")[0]){
<?php $how_to_slice = array_slice($how_tos_full, 0, 3); ?>
} else {
<?php $how_to_slice = array_slice($how_tos_full, 3, 3); ?>
}
</script>
<?php foreach($how_to_slice as $how_to) : ?>
任何想法?!
答案 0 :(得分:0)
如果您的主要座右铭是将确切的div类名称更改为new,那么您可以使用jquery将现有的div类名称更改为新的名称。 添加以下脚本,只要你输入js代码。
<script>
(function($){
$(document).ready(function() {
$('.howto-one').attr('howto-one','new_class')
})(jQuery);
</script>
如果您使用此代码,则可以使用new_class而不是howto-one,但不会删除howto-one。 看看它..
答案 1 :(得分:0)
你尝试的组合不会起作用。
您需要创建PHP数组的字符串才能在JS函数中使用它们。因此使用json_encode
<script>
if ($(".howto-one")[0]) {
var how_to_slice = <?php echo json_encode( array_slice($how_tos_full, 0, 3) ); ?>;
} else {
var how_to_slice = <?php echo json_encode( array_slice($how_tos_full, 3, 3) ); ?>;
}
</script>
答案 2 :(得分:0)
您的内容在发送到浏览器之前在服务器上生成。就PHP而言,Javascript只是文本内容,因此就服务器而言,您的内容可能如下所示:
the quick brown fox
<?php // do stuff ;?>
jumped over
<?php // do more stuff ;?>
the lazy dog
始终会评估do suff
和 do more stuff
。
Javascript是客户端的,因此在内容到达浏览器之前不会评估if/else
测试。在这种情况下,Javascript实际上没有任何评估,无论哪种情况属实 - 在这些条件中没有内容,JS或其他内容(PHP不会回应任何内容)。
所以简而言之,你不能这样做。您可以执行相反的操作,并根据PHP代码生成JS,因为该代码是在服务器端生成的。例如(随机示例,不打算与您的代码或功能相匹配):
<?php if ($how_to_slice === true) { ?>
<script>
$('.howto-one').show();
</script>
<?php } else { ?>
<script>
$('.howto-one').hide();
</script>
<?php } ?>
您可能需要重新考虑您的方法。