cam*_*sky 6 javascript php ajax jquery
可能重复:
将变量从php传递给javascript
我正在动态生成一个列表.我想让每一行都悬停在鼠标悬停上并可点击链接.我希望链接传递行内容的id.
基本上:
foreach ($courses as $cid=>cinfo){
$univ = $cinfo['univ'];
$desc = $cinfo['desc'];
$size = $cinfo['size'];
$start = $cinfo['start'];
print "<div class='rc_desc' id='rc_desc$cid'>"."$desc<br/>"."<b>$univ</b><br/>".
"<span>Number of students</span>: $size<br/>".
"<span>Started at</span>: ".date('F d, Y',strtotime($start))."<br/>".
}
<script>
$(function ()
{
$('#rc_desc$cid').hover(function ()
{
$(this).toggleClass('.tr');
});
$('#rc_desc$cid').click(function ()
{
$(location).attr('href','student.php?$cid');
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
问题出在js/jquery中.我希望能够获取$ cid并在点击后将其传递给student.php页面.上面的PHP代码有效,但js当然不会.我知道客户端和服务器端语言的基础.这个问题不值得讲课.我知道我不能完全这样做,但这是我最终想要发生的事情.我对如何实现这一点的想法很简单?在此先感谢我的朋友!
是的,如果<script>在PHP代码中包含该部分,则可以执行与以下内容类似的操作:
<script>
var foo = <?php echo $foo; ?>;
</script>
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您将查看以下代码结构:
<script>
$(function () {
$('#rc_desc<?php echo $cid ?>').hover(function () {
$(this).toggleClass('.tr');
});
$('#rc_desc<?php echo $cid ?>').click(function () {
$(location).attr('href', 'student.php?<?php echo $cid ?>');
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是可能的原因是因为虽然Javascript是在客户端运行的,但它在服务器端首先在页面上呈现之前进行处理.因此,它将$cid用您所包含的实例替换所有必要的实例.
享受并祝你好运!
编辑:
<script>
$(function () {
$('.rc_desc').hover(function () {
$(this).toggleClass('.tr ');
});
$('.rc_desc').click(function () {
$(location).attr('href', 'student.php?' + $(this).attr('id').split('rc_desc')[1]);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
$(location).attr('href','<?php echo $cid ?>');
Run Code Online (Sandbox Code Playgroud)
javascript代码不知道它来自php,它显示为常量(文字).