在Jquery中使用PHP变量

时间:2014-01-02 07:31:05

标签: javascript php jquery

您好我已经阅读过关于在jquery中使用php变量的这个帖子,但不知何故它在我的网站上不起作用: LINK

使用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; ?>

5 个答案:

答案 0 :(得分:7)

只需使用课程。否则你最终会为每个问题提供一段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; ?>

<强> FIDDLE

答案 1 :(得分:2)

Script标记应位于forach循环内。

请尝试这个并准确解释你得到了什么错误?

答案 2 :(得分:0)

您不会得到此值var row_id="<?php echo $r['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; ?>

答案 3 :(得分:0)

使用类和.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; ?>

答案 4 :(得分:-1)

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

仅在foreach循环中定义。将javascript放入循环中它将起作用。

<script>
    function q_click(row_id){
        $("#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']; ? onclick="q_click(<?php echo $r['id']; ?>)">          </li> 
        <div id="ans<?php echo $r['id']; ?>" style="padding:5px;">A: <?php echo $r['answer']; ?></div> 
    <?php endforeach; ?>