<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>
我应该如何重写它以使其工作?
撇开混乱的代码问题不谈,这个:
<?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的混合,你不必担心转义引号,PHP $output
已经提前在你的页面上(隐藏(,JavaScript只需要显示它。