Vik*_*aer 2 javascript ajax jquery prototypejs
我正在尝试从一个从mysql数据库获取数据的php文件中对div进行简单的ajax更新.一个函数填充div,另一个函数将消息添加到数据库,并在单击提交按钮时调用.我想知道是否有人可以在jquery中给我他们的等价物.以下是原型版本.
<script>
function getMessages(){
new Ajax.Updater('chat','messages.php', {
onSuccess:function(){
window.setTimeout( getMessages, 3000 );
}
});
}
getMessages();
</script>
<script>
function addmessage(){
new Ajax.Updater('chat','add.php',{
method:'post',
parameters: $('chatmessage').serialize(),
onSuccess: function() {
$('messagetext').value = '';
}
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
在jQuery的阿贾克斯()调用,所有这一切.它有包含较少参数的包装器,如.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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
注意: dataType参数只需匹配脚本生成的任何内容.如果messages.php产生一个HTML消息列表,那么将dataType设置为"html".如果是这种情况,您还可以将代码简化为:
function getMessages() {
$("#messages").load("message.php");
}
Run Code Online (Sandbox Code Playgroud)
注意: load()函数只是.ajax()的包装器.如果需要设置超时,错误处理等内容,请使用.ajax().例如:
<div id="messages"></div>
<input type="button" id="getmessages" value="Get Messages">
...
<script type="text/javascript">
$(function() {
$("#getmessages").click(function() {
$(this).attr("disabled", "true");
$.ajax({
url: 'message.php',
dataType: "html",
timeout: 5000,
error: function() {
alert("Error talking to server.");
$(this).attr("disabled", "false");
},
success: function(data) {
$("#messages").html(data);
$(this).attr("disabled", "false");
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
以上是一个更全面的示例,应该让您了解可以使用额外参数的内容.如果您不需要它们,只需使用速记版本.