是否可以将php变量插入到js代码中?

可能重复:
将变量从php传递给javascript

我正在动态生成一个列表。 我想让每一行都hover在鼠标hover上并可点击链接。 我希望链接传递行内容的id。

基本上:

foreach ($courses as $cid=>cinfo){ $univ = $cinfo['univ']; $desc = $cinfo['desc']; $size = $cinfo['size']; $start = $cinfo['start']; print "
"."$desc
"."$univ
". "Number of students: $size
". "Started at: ".date('F d, Y',strtotime($start))."
". } $(function () { $('#rc_desc$cid').hover(function () { $(this).toggleClass('.tr'); }); $('#rc_desc$cid').click(function () { $(location).attr('href','student.php?$cid'); }); });

问题出在js / jquery中。 我希望能够获取$ cid并在点击后将其传递给student.php页面。 上面的PHP代码有效,但js当然不会。 我知道客户端和服务器端语言的基础。 这个问题不值得讲课。 我知道我不能完全做到这一点,但这是我最终想要发生的事情。 我对如何实现这一点的想法很简单? 在此先感谢我的朋友!

是的,如果在PHP代码中包含部分,则可以执行类似以下操作:

  

在您的情况下,您将查看以下代码结构:

  

这是可能的原因是因为虽然Javascript是在客户端运行的,但它在服务器端首先在页面上呈现之前进行处理。 因此,它将用您包含的$cid替换所有必需的$cid实例。

享受,祝你好运!

编辑

  

你可以这样做:

  $(location).attr('href',''); 

javascript代码不知道它来自php,它显示为常量(文字)。

对的,这是可能的。 你所要做的就是把你的 在你需要的地方

  

这是可能的,因为在将脚放入页面时,cid已经被服务器上的字符串替换。 由于PHP是服务器驱动的,在它回吐html /脚本之前就像你自己把它放进去一样。

实际上几乎没有办法实现PHP和JavaScript的通信。 但是,最好和最简单的方法是在属性中设置ID。 新的HTML5数据属性将是完美的。

例如,有一个锚标记

 some event 

然后:

 $(this).attr('href','student.php?'+$(this).attr('data-id')); 

或者只是使用

  

如果不是外部JS文件

试试这个代码

 foreach ($courses as $cid=>cinfo){ $univ = $cinfo['univ']; $desc = $cinfo['desc']; $size = $cinfo['size']; $start = $cinfo['start']; print "
"."$desc
"."$univ
". "Number of students: $size
". "Started at: ".date('F d, Y',strtotime($start))."
". }

我想你阻止应该是:

  

UPDATE

但你真的不需要这样做,你有

 "
"."$desc
"."$univ
". "Number of students: $size
". "Started at: ".date('F d, Y',strtotime($start))."
".

你可以试试这个

 $(function (){ $('.rc_desc').hover(function () { $(this).toggleClass('.tr'); }); $('.rc_desc').click(function () { attrId = $(this).attr("data-id"); $(location).attr('href','student.php?'+id); }); });