我的jquery代码里面的PHP代码没有被执行

时间:2013-11-22 14:54:13

标签: php jquery

<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>

我该如何重写它以使其有效?

1 个答案:

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