这是我第一次使用jquery,我正在尝试设置一个简单的AJAX,这样我就可以更好地理解它是如何工作的。不幸的是,我知道的并不多。下面是包含脚本的HTML:
<html>
<head>
<title>AJAX attempt with jQuery</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function ajax(str){
$("document").ready(function(){
$.post("ajaxjquerytest.php",str,function(){
$("p").html(response);
});
});
</script>
</head>
<body>
<input type="text" onchange="ajax(this.value)"></input>
<p>Age?</p>
</body>
</html>下面是它正在与之对话的PHP:
<?php
$age = $_POST['age'];
if ($age < 30)
{
echo "Young";
}
else if ($age > 30)
{
echo "Old";
}
else
{
echo "you're 30";
}
?>发布于 2010-03-16 05:26:44
不确定$.post()函数是否有权访问str参数。试着这样做:
<html>
<head>
<title>AJAX attempt with jQuery</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$("document").ready(function(){
$('input').change(function() {
$.post("ajaxjquerytest.php",{'age': $(this).val()},function(response){
$("p").html(response);
});
});
});
</script>
</head>
<body>
<input type="text" />
<p>Age?</p>
</body>
</html>这会在DOM完全加载后将一个onChange处理程序附加到输入元素。
如果您省略了$(document).ready(),那么您的方法也应该有效。但是将JS函数附加到元素更像是使用jQuery完成的。
除此之外,您只需要将代码包装到$(document).ready()中,这些代码应该在构建整个DOM树之后执行。你的例子,你只是定义了一个函数。不需要使用document ready,因为在加载DOM之前无法调用该函数。
阅读.post()的文档!
发布于 2010-03-16 05:56:55
我认为这里的问题是响应没有被定义。它应该作为参数传递给函数。试试这个:
function ajax(str){
$.post("ajaxjquerytest.php",str,function(response) {
$("p").html(response);
});
}发布于 2010-03-16 05:51:26
您发布的代码中有几个问题。
当你的PHP代码需要一个名为suggested
{ AGE: str }这样的适当命名的属性。在jQuery documentation.
this关键字时要小心,根据context it's used in的不同,它可能具有截然不同的含义。(看起来您使用它的方式在页面的最底部进行了描述)。不过,从Felix的示例开始并从那里开始工作可能会更容易。
https://stackoverflow.com/questions/2450591
复制相似问题