<script>
$('#tes').click(function(){
<?php $output = '';
foreach( $votes as $array)
if($array->color === $colors->color)
$output = $output . $array->votes . '<br>';?>
$('#Result').html(<?php $output ?>);
});
</script>
我该如何重写它以使其有效?
答案 0 :(得分:0)
抛开凌乱的代码问题,这个:
<?php $output ?>
应该是:
<?php echo $output ?>
另请注意,您的JavaScript html()
函数需要一个字符串,这意味着HTML周围的引号。类似的东西:
$('#Result').html("<?php $output ?>")
但是如果你的PHP $output
中有引号,那就会破坏。那么你需要看看addslashes()
。
虽然这应该可以解决您当前的问题,但评论者认为这是编写代码时非常混乱/丑陋的方式,您需要对此进行重构。
建议:让这个更清洁的一种方法是:
// At the top of your page
<?php
$output = '';
foreach( $votes as $array) {
if($array->color === $colors->color) {
$output .= $array->votes . '<br>';
}
}
?>
// Down in your HTML code somewhere
<div id="output" style="display:none"><?php echo $output ?></div>
// Now for the much simpler javascript
<script>
$('#tes').click(function(){
$("#output").show();
});
</script>
这样你就可以将PHP与HTML / JS混合在一起 minimal ,你不必担心转义引号,PHP $output
已经在你的页面上(隐藏)时间,JavaScript只需要显示它。