根据用户点击的内容进行不同的操作
Do something different depending on what the user clicks on
我有三个锚链接:
<a name="send1" href="#signup" >go 1</a>
<a name="send2" href="#signup" >go 2</a>
<a name="send3" href="#signup" >go 3</a>
当用户点击链接时,会显示相同的弹出表单:
<div id="signup">
<form action="send_form.php">
<input name="text" type="text">
<button type="submit">Send</button>
</form>
</div>
当用户单击"发送"时,将执行"send_form.php"。我想检查哪个链接被点击了,然后做一些不同的事情。
据我所知,仅使用PHP是无法做到这一点的。
我的意思是,你试图理解按下了什么链接,这与表单本身无关。
为了实现这一点,我建议您使用javascript或jQuery在表单中设置一个隐藏字段,然后发送它
示例:
链接:
<a href="#test" name="test">link</a>
形式:
<div id="signup">
<form action="send_form.php" method="post">
<input type="hidden" name="linkPressed" />
<input name="text" type="text" />
<button type="submit">Send</button>
</form>
</div>
javascript(假设jQuery):
$('a').click(function(){
$('#linkPressed').val($(this).attr('name'));
});
send_form.php:
$pressedlinkname = $_POST['linkPressed'];
你来了。
不要把它当作你问题的确切解决方案:按照这个启发你的解决方案。
希望这能有所帮助。
你不可能仅仅从PHP中知道这一点。这是您可以通过使用javascript(或者更好的是,jQuery)找到的东西。
方法是:
- 捕获所有定位标记上的单击事件
- 为变量指定名称(或者更好的是ID)
- 将变量的ID添加到表单中的隐藏字段
这就是使用jQuery:时的样子
jsFiddle演示
HTML:
<a name="send1" id="send1" href="#signup">go 1</a>
<a name="send2" id="send2" href="#signup">go 2</a>
<a name="send3" id="send3" href="#signup">go 3</a>
<div id="signup">
<form action="send_form.php">
<input name="text" type="text">
<input name="hidden_field" id="hidden_field" type="hidden" />
<button type="submit">Send</button>
</form>
</div>
javascript:
var the_anchor;
$('#signup').dialog({
autoOpen:false,
close: function(){
$(this).dialog('close');
}
});
$('a').click(function() {
the_anchor = $(this).attr('id');
$('#hidden_field').val(the_anchor);
$('#signup').dialog('open');
});
请注意,如果使用jQuery,则必须引用文档的<head>
标记中的jQuery库:
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/flick/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
</head>
URL的hash(#)部分仅在客户端使用。它永远不会出现在服务器日志、请求或REFERRER字符串中。你必须通过FORM(使用javascript)发送,例如:
<input name="hash" type="text">
并使用JavaScript 更改输入值
Javascript!
//html
<a name="send1" href="#signup" onclick="myFunction(1)>go 1</a>
<a name="send2" href="#signup" onclick="myFunction(2)>go 2</a>
<a name="send3" href="#signup" onclick="myFunction(3)>go 3</a>
<div id="signup">
<form action="send_form.php">
<input name="text" type="text">
<input id="clicked" type="hidden" value=0>
<button type="submit">Send</button>
</form>
</div>
//js
function myFunction(x){
document.getElementById("clicked").value = x;
}
首先,在表单中添加一个隐藏的输入:
<input type="hidden" id="clicked_link" name="clicked_link" value="" />
然后使用一些jquery:
$(document).ready(function(){
$('a').click(function() {
$('#clicked_link').val($(this).attr('name'));
});
});
或者,我想你可以使用纯javascript,但它是类似的方法。。
相关文章:
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 允许我在用户操作后隐藏YouTube视频吗
- reactJs redux:如何对用户事件调度操作并将操作与化简器和存储链接
- 在用户操作时重置 i18next
- 如何通过 html 正文中的脚本区分用户操作和操作
- 根据当前用户启用“自定义操作”按钮
- 根据用户点击的内容进行不同的操作
- 如何在用户到达iframe分区末尾时显示操作按钮
- 带有所有用户操作的业务逻辑的Javascript配置文件
- 如何获取用户操作
- php使用ajax生成html表,以应用用户操作,如删除、更新和编辑
- 如何解析用户对象以返回屏幕名称并继续下一步操作
- 根据用户在asp.net网站中选择的弹出窗口使用JavaScript操作网页
- 检测被用户操作中断的 Ajax 请求
- 如何在对用户控件执行操作后调用 Web 服务
- 如何使用MongoDB在MeteorJs中存储用户操作
- 使用内置的 like 操作 (og.likes) 检查当前用户是否喜欢某个 URL
- 操作用户's选定的文本在editMode