Running a javascript function on a <a href>


Running a javascript function on a <a href>

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

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

然后使用它来运行一个JavaScript函数,该函数运行以下内容:

$.post("queries.php")

它运行一个PHP函数,该函数运行如下SQL查询:

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>

e.preventDefault(); 

阻止了点击链接的默认操作,并允许我们做自己的事情。

$("a").click(function(e){
e.preventDefault();
//Do ur stuff
});

访问此链接:

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

他们用

的例子很好地解释了它的功能

您编写的这种方式包括所有的a标记,如果您的菜单中有超链接,您的菜单也会起作用,首先给你的超链接一个id

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

然后在jquery中使用这个:

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

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

您可以从任何想要的地方调用它,但锚标记是首选,因为如果用户没有激活JavaScript,您将有一个回退,并可以将用户重定向到其他页面。只要确保防止默认行为。

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