从原型转换为jquery

我正在尝试从一个从mysql数据库获取数据的php文件中对div进行简单的ajax更新。 一个函数填充div,另一个函数将消息添加到数据库,并在单击提交按钮时调用。 我想知道是否有人可以在jquery中给我他们的等价物。 以下是原型版本。

 function getMessages(){ new Ajax.Updater('chat','messages.php', { onSuccess:function(){ window.setTimeout( getMessages, 3000 ); } }); } getMessages();   function addmessage(){ new Ajax.Updater('chat','add.php',{ method:'post', parameters: $('chatmessage').serialize(), onSuccess: function() { $('messagetext').value = ''; } }); }  

jQuery .ajax()调用可以完成所有操作。 它有包含较少参数的包装器,如.get(),. postt()和.load(),您可以使用它们来减少冗长的语法。

您没有提到您获取的数据的格式。您需要在.ajax()调用中指定。 大致:

 function addMessage(message) { $.ajax({ url: 'add.php', success: function() { $("#chatmessage").text(''); }, error: function() { ... }, timeout: 3000, data: { message: message } }); } function getMessages() { $.ajax({ url: 'messages.php', dataType: 'html', timeout: 3000, error: function() { ... }, success: function(data) { $("#messages").html(data); } }); } 

注意: dataType参数只需匹配脚本生成的任何内容。 如果messages.php产生一个HTML消息列表,那么将dataType设置为“html”。 如果是这种情况,您还可以将代码简化为:

 function getMessages() { $("#messages").load("message.php"); } 

注意: load()函数只是.ajax()的包装。 如果需要设置超时,error handling等内容,请使用.ajax()。例如:

 
...

以上是一个更全面的示例,应该让您了解可以使用额外参数的内容。 如果您不需要它们,只需使用速记版本。

 $.ajax({ type: "GET", url: "messages.php", data: "name=John&location=Boston", success: function(){ window.setTimeout(getMessages,3000); } }); 

第二次添加消息

 $.ajax({ type: "POST", url: "add.php", data: $('#chatmessage').param(), success: function() { $('messagetext').value = ''; } }); 

有关详细信息,请查看http://docs.jquery.com/Ajax