根据用户点击的内容进行不同的操作

Do something different depending on what the user clicks on

本文关键字:操作 用户      更新时间:2024-07-04

我有三个锚链接:

<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,但它是类似的方法。。