我正在动态生成一个列表。我想使每行都悬停在鼠标悬停上并单击链接。我希望链接传递行内容的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>
问题出在js / jquery中。我希望能够抓住$ cid并在单击后将其传递给student.php页面。上面的php代码有效,但是js当然不会。我知道客户端语言和服务器端语言的基础。这个问题不值得上课。我知道我无法完全做到这一点,但这是我最终想要实现的目标。关于如何简单地实现此目标的任何想法?预先感谢我的朋友们!
是的,如果您<script>在PHP代码中包含此部分,则可以执行以下操作:
<script>
<script> var foo = <?php echo $foo; ?>; </script>
就您而言,您将研究以下代码结构:
<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>
之所以可行,是因为尽管Javascript是在客户端运行的,但在页面上展示之前,它先在服务器端进行了处理。因此,它将$cid用您包含的实例替换所有必要的实例。
$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>