假设我有一个像这样的表单(取自一本关于 jquery 的书):
<body>
<form>
<label>Enter your Name</label>
<input type="text" name="uname" class="uname"/> <br/>
<input type="submit" id="submit"/>
</form>
<div id="message"></div>
</body>
还有一个像这样的ajax函数:
$(document).ready(function() {
$('#submit').click(function () {
var name = $('.uname').val();
var data = 'uname=' + name;
$.ajax({
type:"POST",
url:"welcome.php",
data: data,
success: function (html) {
$('#message').html(html);
}
});
return false;
});
});
脚本文件如下所示:
<?php
$name = $_POST['uname'];
echo "Welcome ". $name;
?>
它会起作用,但这是我无法理解的。如果welcome.php脚本从POST数组中获取$name的值,为什么它需要通过ajax请求将数据发送给它? POST 数组肯定已经包含该信息了吗?
另外,我的理解是ajax请求采用键/值对的形式,但数据以uname=name的形式发送,但键/值对通常没有等号。
这里发生了什么 - 它有效,但对我来说没有意义,我讨厌仅仅输入我死记硬背学到的代码。
最佳答案
jQuery AJAX 异步工作。该表单不会被发布,因为您可以看到它没有在表单标记上设置操作或方法属性。
jQuery 拦截按钮单击并设置一个新的异步请求,然后将数据添加到该请求并将其发布到服务器。
关于jquery - jquery ajax实际是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004867/