在<a href=""></a>上运行javascript函数

时间:2014-04-08 15:54:30

标签: javascript php

我只是想知道如何在<a>上触发JavaScript函数:

$('a').click( function() { your_code_here; return false; } );

然后使用它来运行运行如下代码的JavaScript函数:

$.post("queries.php")

运行一个运行SQL查询的PHP函数,如下所示:

public function GetResults()
{ 
    list($subjectID, $sectionID, $principleID) = explode('#', $_POST["comboboxselections"]);
    $box = ""; // placeholder for the html results to be returned to 
    $sql = "SELECT media_id,title,blurb 
            FROM media 
            WHERE subject_id = $subjectID AND section_id = $sectionID AND principle_id= $principleID AND verified = 1"; 
    try
    {
        return $this->getResultsAndGenerateHTML($sql, $this->conn);
    }catch(exception $e)
    {
        echo 'Caught exception: ',  $e->getMessage(), "\n";

    }
}
  1. 这是从HTML <a>运行SQL查询的最佳选择,还是有更好的方法可以做到这一点?

  2. 我已经知道MySQLi和PDO这个项目没有上线所以我不需要担心SQL注入。

  3. 必须在HTML <a>上完成。我知道我可以使用更容易的按钮,但根据我的规范,它使用<a>

3 个答案:

答案 0 :(得分:2)

e.preventDefault(); 

阻止点击链接的默认操作,并允许我们执行操作。

$("a").click(function(e){

e.preventDefault();

//Do ur stuff

});

访问此链接:

http://api.jquery.com/event.preventdefault/

他们通过示例精美地解释了它的功能

答案 1 :(得分:2)

这种方式你写的包含了你的所有标签,如果菜单中有超链接,你的菜单也会起作用, 首先给你的超链接ID

<a href="#" id="Something">Click On Me</a>

然后在jquery中使用它:

$("#Something").click(function(e){
     e.preventDefault();
     //write your function here
});

这可以防止更改页面并完成您的功能。

答案 2 :(得分:1)

您可以从任何您想要的地方调用它,但首选锚标记,因为如果用户没有激活JavaScript,您将获得后备并可以将用户重定向到其他页面。请务必防止默认行为。

建议不要使用

return false,因为它还可以防止事件冒泡。您应该使用event.preventDefault()