是否可以使用PHP添加事件监听器?

时间:2012-05-09 22:31:30

标签: php javascript-events smarty

我正在创建一个使用Smarty模板的调查表单,其中我想附加一个具有特定问题的单选按钮的事件,以便在单击其中任何一个时弹出一条消息。 所以我想在它们上面添加一个click / change事件监听器,但是不知道如何使用php。由于我事先不知道单选按钮id(它们是动态生成的),我不确定我是否可以在这里使用Javascript。 任何解决方案/建议?

谷歌搜索会返回为Android和javascript添加事件监听器的所有答案,这些答案都没用!

4 个答案:

答案 0 :(得分:4)

只需在单选按钮中添加一个类,然后使用JavaScript / JQuery,就可以根据需要在输入中添加事件监听器。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="myjsfile.js"></script>
<input type="radio" class="clickyradio" />
<input type="radio" class="clickyradio" />
<input type="radio" class="clickyradio" />

现在在文件myjsfile.js

$(document).ready(function() {
   $('.clickyradio').click(function() {
      // whatever you want to happen when it gets clicked
      // "this" keyword will refer to the input element that got clicked

   });
});

如果您需要单击以与服务器进行通信,请在单击事件处理程序中放置ajax调用。

答案 1 :(得分:3)

最接近php事件监听器的事情是在javascript事件被触发后通过ajax调用某些特定的php功能。该请求在技术上附加到客户端的事件链(回调)。

但是php没有这样做,因为它不是客户端。

答案 2 :(得分:0)

PHP无法监听单选按钮,因为所有代码都在服务器端完成,而单选按钮将在客户端单击。你几乎肯定会使用JavaScript。如果你对JS不太满意,我会建议你查看jQuery。它非常用户友好,并且快速学习恕我直言。有了它,您可以监听要点击的raido按钮,然后通过AJAX将信息传递回PHP脚本。我会给你一个更好的例子,但不知道你的代码就很难说明它。

答案 3 :(得分:-1)

你可以这样做,你只想用php来编写你的javascript。您可以通过将其写入文件中或将脚本指向php文件来执行以下两种方法之一。

如果选择后者,this site

讨论如何设置文件。如果您在文档中执行此操作,则只需执行类似

的操作
    <?php

   echo "<script>";

   if($radio_button == 'blah'){
      echo "document.getElementById('$radio_button')";//bind your event here
   }
   echo "</script>";

有意义吗?在javascript命令中调用php文件可能更整洁,但两种方式都有效。