0

我正在尝试使用 php 连接数据库并使用 javascript 动态显示结果。这就是我想要做的 -

<?php
function mainMenu($q){
$res=array();;
$q->setFetchMode(PDO::FETCH_NUM);   
while($r = $q->fetch()){
    array_push($res, "
    <li>
       <a class='gn-icon ".mysql_real_escape_string($r[0])."'>".mysql_real_escape_string($r[1])."
       </a>
    </li>");
}
return $res;
} ?>

现在这里是 html ,它绝对有效

<ul id="sidemenu" class="gn-menu">
    <?php 
        $a=mainMenu($q);
        foreach ($a as $value) {
            echo $value;
        }
    ?>                       
</ul>

但是当我尝试这个时 -

<script> 
$('#sidemenu').html(<?php 
    $b=mainMenu($q);
            foreach ($b as $value) {
           echo "$value";
}
 ?>);
</script>

它不起作用,我只是在我的源代码中看到空白,并且列表中没有打印任何内容,谁能告诉我我哪里出错了......

4

2 回答 2

1
<?php
function mainMenu($q) {
  $res=array();
  $q->setFetchMode(PDO::FETCH_NUM);   
  while( $r = $q->fetch() ) {
    array_push($res, "<li><a class='gn-icon ".mysql_real_escape_string($r[0])."'>".mysql_real_escape_string($r[1])."</a></li>");
  }
  return $res;
} 
?>

<script> 
$('#sidemenu').html("<?=implode('',mainMenu($q))?>");
</script>
于 2013-09-01T07:15:57.273 回答
0

您需要使用“反斜杠”转义输出中的单引号,

<a class=\'gn-icon ".mysql_real_escape_string($r[0])."\'>".mysql_real_escape_string($r[1])."   </a>

你需要像这样使用.html,

.html('<?php $b=mainMenu($q); foreach ($b as $value) { echo $value;} ?>')
于 2013-09-01T07:36:35.653 回答