我在jQuery代码中的PHP代码没有得到执行


my php code inside of jquery code doesn't get executed

<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只需要显示它。