2014-09-19 62 views
0

首先请原谅我,如果这是一个愚蠢的问题!我刚开始尝试通过遵循一些在线教程来了解这个Ajax是关于PHP的全部内容,但是我没有得到如何调用一个可以启动你的ajax的javascript函数。需要一点帮助学习AJAX和PHP?

所以我有一个index.html文件,并在身体我有一个功能initate一个Ajax请求

<body> 
    <script language="javascript" type="text/javascript"> 
    function ajaxFunction(){ 
      var ajaxRequest; 
    try{ 
      ajaxRequest = new XMLHttpRequest(); 
    } 
    catch (e){ 

     try{ 
     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 

     catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (e){ 
        alert("Your browser broke!"); 
        return false; 
      } 
     } 
    } 

然后我定义的东西来处理readyState的变化:

ajaxRequest.onreadystatechange = function(){ 
    if (ajaxRequest.readyState==4) { 
document.getElementById("requestStatus").innerHTML=ajaxRequest.responseText;     
    } 
} 

接下来我有一个Javascript函数来调用阿贾克斯:

function archiveEvent(eventId) { 
    var queryString = "?date=" + eventId; 
    ajaxRequest.open("GET", "archive.php" + queryString,true); 
    ajaxRequest.send(null); 
} 

然后在我的HTML我有几个div:

<div id="outer"> 
    <input type="button" id="archive" value="Archive" onclick="WHAT DO I PUT HERE"> 
</div> 

<div> 
    <p id="requestStatus"><p> 
</div> 

问题是我为onClick值做了什么?我想用一个参数“09122014”来调用函数archiveEvent。在教程中,我读过它说在这里放置ajaxFunction。

当我省略了archiveEvent函数并且使用了硬编码值时,这个工作正常,但显然我不能使用硬编码值。

+0

'的onclick =“ajaxFunction()”'但你也许并不需要一个archiveevent功能 – Dave 2014-09-19 15:04:05

+0

也认真看与jQuery它可以节省做点击(功能(){$ .ajax({}); \t \t \t});'' – Dave 2014-09-19 15:05:12

回答

0
onclick="javascript:archiveEvent(parameters)" 

确保你添加了你的函数所期望的任何数据。

0

使用本:

<input type="button" id="archive" value="Archive" onclick='ajaxFunction()'> 

,但我会建议使用jquery ajax尝试。

像这样的单击事件或任何:

$.ajax({ 
type="post", 
    url: archive.php, 
data:{date:eventId}, 
success:function(){ 
//response here, 
} 
});