通过<a >触发AJAX函数——PHP

Triggering AJAX function via <a href> - PHP

本文关键字:函数 PHP AJAX 通过 触发      更新时间:2023-09-26

我需要通过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>

从链接中删除'href="'。它们应该是这样的:

<a Onclick="showUser()" >Show Comments</a>

希望这对你有帮助!:)

编辑:这是我如何调用"showUser()"的ID:
echo '<a onclick="showUser('.$row['ID'].')" >Show Comments</a>';

我只是不喜欢html中的onClick()事件。这也不是一个好的做法(参见为什么在HTML中使用onClick()是一个不好的做法?)

最好将事件绑定到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/

试试这个

<a id="showUser">Show Comments</a>
$('#showUser').click(function(){
  //your ajax code goes here
  return false;
});