您好我已经阅读过关于在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; ?>
答案 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; ?>