Javascript 在Jquery中使用PHP变量

Javascript 在Jquery中使用PHP变量,javascript,php,jquery,Javascript,Php,Jquery,您好,我读过关于在jquery中使用php变量的帖子,但不知怎么的,它在我的网站上不起作用: Javascript: <script> var row_id="<?php echo $r['id']; ?>"; $(document).ready(function(){ $("#que"+row_id).click(function(){ $("#ans"+row_id).slideToggle(); }); }); </script>

您好,我读过关于在jquery中使用php变量的帖子,但不知怎么的,它在我的网站上不起作用:

Javascript:

<script>
var row_id="<?php echo $r['id']; ?>";

$(document).ready(function(){
  $("#que"+row_id).click(function(){
    $("#ans"+row_id).slideToggle();
  });
});


</script>
<?php foreach($res as $r) : ?>

    <li id="que<?php echo $r['id']; ?>">Q<?php echo $r['id']; ?>: <?php echo $r['question']; ?>          </li> 
    <div id="ans<?php echo $r['id']; ?>" style="padding:5px;">A: <?php echo $r['answer']; ?></div> 
<?php endforeach; ?>

var row_id=“”;
$(文档).ready(函数(){
$(“#que”+行id)。单击(函数(){
$(“#ans”+行id).slideToggle();
});
});
:

只需使用类即可。否则,每个问题都会有一段jquery代码

<script>
$(document).ready(function(){
  $(".que").click(function(){
    $(this).next().slideToggle();
  });
});
</script>

<?php foreach($res as $r) : ?>
    <li class="que">Q<?php echo $r['id']; ?>: <?php echo $r['question']; ?></li> 
    <div style="padding:5px;">A: <?php echo $r['answer']; ?></div> 
<?php endforeach; ?>

$(文档).ready(函数(){
$(“.que”)。单击(函数(){
$(this.next().slideToggle();
});
});
  • Q:
  • A:

    脚本
    标记应位于
    forach
    循环内


    请尝试这一点,并解释您的错误是什么?

    我认为您在javascript中使用了未定义的变量$r

    它仅在foreach循环中定义。让javascript进入循环,这样它就可以工作了

    
    功能q_单击(行id){
    $(“#ans”+行id).slideToggle();
    }
    
    :你不会得到这个值
    var row_id=“”$r['id']
    foreach

    我假设您想使用
    $r['id']
    ,所以请尝试这样的方法

    <script>
        $(document).ready(function(){
            $(".row").click(function(){
                var row_id = $(this).val();
                $("#ans"+row_id).slideToggle();
            });
        });
    
    </script>
    
    <?php foreach($res as $r) : ?>
    
        <li id="que<?php echo $r['id']; ?>">Q<?php echo $r['id']; ?>: <?php echo $r['question']; ?></li>
        <input type="hidden" value="<?php echo $r['id']; ?>" class="row" />
        <div id="ans<?php echo $r['id']; ?>" style="padding:5px;">A: <?php echo $r['answer']; ?></div>
    <?php endforeach; ?>
    
    
    $(文档).ready(函数(){
    $(“.row”)。单击(函数(){
    var row_id=$(this.val();
    $(“#ans”+行id).slideToggle();
    });
    });
    :
    
    使用类和
    .next()
    轻松解决此问题:

    <script>
    
    $(document).ready(function(){
      $('.que').click(function(){
        $(this).next('.ans').slideToggle();
      });
    });
    
    
    </script>
    <?php foreach($res as $r) : ?>
        <li id="que<?php echo $r['id']; ?>" class="que">Q<?php echo $r['id']; ?>: <?php echo $r['question']; ?>          </li> 
        <div id="ans<?php echo $r['id']; ?>" class="ans" style="padding:5px;">A: <?php echo $r['answer']; ?></div> 
    <?php endforeach; ?>
    
    
    $(文档).ready(函数(){
    $('.que')。单击(函数(){
    $(this.next('.ans').slideToggle();
    });
    });
    :
    
    “不起作用”不是对问题的很好的描述,到底是什么不起作用,您是否检查了控制台中的错误等,您得到的是什么生成的HTML?在您的JS中用
    ?>
    替换
    作为旁注,您知道循环内的变量在循环外是不可用的,因为你似乎认为你可以在任何地方使用这些PHP变量?我试图制作一个FAQ部分,当人们点击“问题”时,答案会向下滑动,使用jquery切换。我看不到asker代码中javascript上下文中的任何地方。$r作为PHP变量,在javascript中用于代码-我认为使用单独的
    $(文档)不是一个好主意。准备(…)
    调用表中的每一行。也许你应该循环两次?(或者只是看看)@JanDvorak和约翰·C·德沃夏克有什么关系吗?哈哈,对于这个答案的作者来说:这是非常浪费和低效的代码。请重新考虑这不是最好的使用,但它应该工作@khawer给出了最好的解决方案。所以你希望他的jQuery在整个页面上打印多次?千万不要尝试在循环中使用这种类型的脚本。天哪,你和我得到了完全相同的答案,我没想到哈哈(这不是一个很难弄清楚的答案,但今晚的一些答案让我质疑S.O.人群lol)我希望我们不是双胞胎哈哈哈,那太可怕了哈哈哈,因为我已经有了一个:D,否则这将是一个三人组:D谢谢你!这真是太完美了!