我正在创建一个使用Smarty模板的调查表单,其中我想附加一个具有特定问题的单选按钮的事件,以便在单击其中任何一个时弹出一条消息。 所以我想在它们上面添加一个click / change事件监听器,但是不知道如何使用php。由于我事先不知道单选按钮id(它们是动态生成的),我不确定我是否可以在这里使用Javascript。 任何解决方案/建议?
谷歌搜索会返回为Android和javascript添加事件监听器的所有答案,这些答案都没用!
答案 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文件可能更整洁,但两种方式都有效。