当我点击bootstrap标签时,我想运行一个ajax函数。
我有html:
<li><a href="#upotrebljeni" data-toggle="tab">Upotrebljeni resursi</a></li>
jquery ajax功能:
$('a #upotrebljeni').click(function (e) {
var ajdi = '22';
var radnici = 'radnici';
var prvi = '1';
$.ajax({
url: 'getRMZ.php', // make this url point to the data file
dataType: 'json',
data:{id_akt:ajdi, tabela:radnici, prvi:prvi},
async: false,
type: 'POST',
success:function(data){
console.log(data);
},
error:function(data) {
console.log(data);
}
});
});
和getRMZ.php pdo文件:
try {
/* Establish the database connection */
$conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->query("SELECT id_tabele,naziv FROM track_aktivnosti WHERE prvi = :prvi AND id_akt = :id_akt AND tabela = :tabela");
$result->execute(array(':prvi' => $_POST['prvi'], ':id_akt' => $_POST['id_akt'], ':tabela' => $_POST['tabela']));
$jsonTable = json_encode($result);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
echo $jsonTable;
现在,当我点击标签#upotrebljeni时,我没有得到任何动作,任何错误,没有......这里有什么问题?
更新:我通过ajax收到错误:“错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法出错;请查看与您对应的手册MySQL服务器版本的正确语法在':prvi AND id_akt =:id_akt AND tabela =:tabela'在第1行附近使用
答案 0 :(得分:2)
<a id="upotrebljeni" href="#upotrebljeni" data-toggle="tab">Upotrebljeni resursi</a>
删除空格。
使用
$('a#upotrebljeni').click(function (e) {
而不是
$('a #upotrebljeni').click(function (e) {
^
a #upotrebljeni
选择器会在<{1}}标记内找到ID为的元素,而<a>
选择器会查找a#upotrebljeni
选择器具有ID的元素。
答案 1 :(得分:0)
您需要将id="upotrebljeni"
添加到您的锚点:
<li><a id="upotrebljeni" href="#upotrebljeni" data-toggle="tab">Upotrebljeni resursi</a></li>
因为您正在使用#
所以它会id
而不是href
定位元素。
另外,因为id
是唯一的,所以您只需要使用:
$('#upotrebljeni').click(function (e) {
而不是:
$('a#upotrebljeni').click(function (e) {