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

时间:2013-12-10 23:55:17

标签: javascript html

我有三个锚链接:

<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> 

&#34; send_form.php&#34;当用户点击&#34;发送&#34;时执行。我想检查点击了哪个链接,并做了不同的事情。

5 个答案:

答案 0 :(得分:2)

据我所知,你不能只使用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'];

你就是。

不要将其作为问题的准确解决方案:通过以下方式激发您的解决方案。

希望这有帮助。

答案 1 :(得分:1)

你无法从PHP中知道这一点。这是你可以通过使用javascript(或更好的,jQuery)找到的东西。

方法是:

  • 在所有锚标记上捕获click事件
  • 将名称(或更好的ID)分配给变量
  • 将变量的ID添加到
  • 形式的隐藏字段中

这就是使用jQuery的样子:

jsFiddle demo

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>

答案 2 :(得分:0)

URL的哈希(#)部分仅在客户端使用。它永远不会出现在服务器日志,请求中,也不会作为REFERRER字符串的一部分出现。你必须通过FORM(使用javascript)发送它,例如:

<input name="hash" type="text">

并使用JavaScript

更改输入值

答案 3 :(得分:0)

的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;
} 

答案 4 :(得分:0)

首先,在表单中添加隐藏的输入:

<input type="hidden" id="clicked_link" name="clicked_link" value="" />

然后使用一些jquery:

$(document).ready(function(){
    $('a').click(function() {
       $('#clicked_link').val($(this).attr('name'));
    });
});

或者你可以使用纯粹的javascript,但它是类似的方法..