我需要通过AJAX显示查询并且能够这样做,我必须匹配产品的ID。因此,我想通过AJAX执行POST方法以允许执行查询。
现在我想为AJAX做一个触发器功能,这样信息就会显示在页面本身而不是重定向到另一个页面。我该怎么做呢?我添加了尝试过的各种地方来添加Onclick功能,但似乎没有任何效果。
有什么建议吗?
由于
echo '<a onclick="showUser('.$row['ID'].')" method = "POST" action= "viewComments.php">Show Comments</a>';
<script>
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("Post","viewComments.php?q="+str,true);
xmlhttp.send();
}
</script>
答案 0 :(得分:1)
从链接中删除'href =“”'。这就是他们应该看的样子:
<a Onclick="showUser()" >Show Comments</a>
希望这有帮助! :)
编辑:这就是我用“ID:
”调用“showUser()”的方法echo '<a onclick="showUser('.$row['ID'].')" >Show Comments</a>';
答案 1 :(得分:0)
我只是不喜欢html中的那些onClick()事件。这也不是一种好的做法(见Why is using onClick() in HTML a bad practice?)
将事件绑定到javascript中的html元素而不是你的html会更好。 像这样:
HTML:
<a href="http://echo.jsontest.com/key/value/one/gotIt" id="myLink" >Show Comments</a>
使用Javascript:
function addEventListener(el, eventName, handler) {
if (el.addEventListener) {
el.addEventListener(eventName, handler);
} else {
el.attachEvent('on' + eventName, function(){
handler.call(el);
});
}
}
var el = document.getElementById('myLink');
addEventListener(el, 'click', showUser);
演示: http://jsfiddle.net/dgrCw/1/
只是我的两分钱......
答案 2 :(得分:-1)
试试这个。
<a id="showUser">Show Comments</a>
$('#showUser').click(function(){
//your ajax code goes here
return false;
});