Javascript 在Jquery中使用PHP变量
您好,我读过关于在jquery中使用php变量的帖子,但不知怎么的,它在我的网站上不起作用: Javascript: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>
<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谢谢你!这真是太完美了!