我只是想知道如何在<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";
}
}
这是从HTML <a>
运行SQL查询的最佳选择,还是有更好的方法可以做到这一点?
我已经知道MySQLi和PDO这个项目没有上线所以我不需要担心SQL注入。
必须在HTML <a>
上完成。我知道我可以使用更容易的按钮,但根据我的规范,它使用<a>
。
答案 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()
。