我使用Smarty模板创建一个调查表单,在这个表单中,我想用一个特定问题的单选按钮附加一个事件,以便在点击任何一个单选按钮时弹出消息。 所以我想添加一个点击/更改事件监听器,但不知道如何使用php。由于我不知道单选按钮ID(它们是在飞行中生成的),因此我不确定是否可以在此处使用Javascript。 任何解决方案/建议?是否可以使用PHP添加事件侦听器?
谷歌搜索返回所有类型的答案,为Android和JavaScript添加事件监听器是没有用的!
我使用Smarty模板创建一个调查表单,在这个表单中,我想用一个特定问题的单选按钮附加一个事件,以便在点击任何一个单选按钮时弹出消息。 所以我想添加一个点击/更改事件监听器,但不知道如何使用php。由于我不知道单选按钮ID(它们是在飞行中生成的),因此我不确定是否可以在此处使用Javascript。 任何解决方案/建议?是否可以使用PHP添加事件侦听器?
谷歌搜索返回所有类型的答案,为Android和JavaScript添加事件监听器是没有用的!
只需在单选按钮中添加一个类,然后使用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。
thnx代码!自从我使用现有的系统构建...时,我遇到了这个问题...做了一些狩猎和丑陋的黑客来整合这个想法......并且它在那里!根据需要工作:) – Ani
PHP无法侦听单选按钮,因为所有代码都在服务器端完成,而单选按钮将在客户端单击。你几乎肯定会使用JavaScript。如果你对JS不太舒服,我会推荐检查jQuery。这是非常用户友好,并快速学习恕我直言。有了这个,你可以听点击raido按钮,然后通过AJAX将信息传回PHP脚本。我会给你一个更好的例子,但不知道你的代码很难说明它。
我与JS合作过,所以这不是问题。我没有意识到我可以在PHP中创建JS,正如Jack在上面评论中所建议的那样,现在正在寻找如何做到这一点。我认为这会解决我的问题。如果你有一个代码来说明这一点,这将是非常有帮助的。谢谢! – Ani
你会得到一个php事件监听器最接近的事情是在javascript事件触发后,通过ajax调用一些特定的php功能。该请求在技术上连接到客户端的事件链(回调)。
但php不这样做,因为它不是客户端。
你可以做到这一点,你只是想用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文件可能更加整洁,但两种方式都可以工作。
为什么不能通过PHP生成部分JavaScript服务器端? – 2012-05-09 22:33:44
如果您不知道身份证,您将如何找到单选按钮? – ilanco
我知道这个问题(当我从数据库中获取它)单选按钮将被添加弹出...在Smarty中,使用模板处理显示,该模板是代码创建单选按钮的ID的位置。尽管我可以尝试使用php内部的代码生成逻辑。 杰克的建议听起来像一个可能的选择,搜索更多关于 – Ani