使用$ .post进行简单的ajax测试,我错过了什么?

Joe*_*ssi 0 php ajax jquery

第一次玩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>
Run Code Online (Sandbox Code Playgroud)

这是它正在谈论的PHP:

<?php
$age = $_POST['age'];

if ($age < 30)
  {
  echo "Young";
  }
else if ($age > 30)
  {
  echo "Old";
  }
else
  {
  echo "you're 30";
  }
?>
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 5

不确定该$.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>
Run Code Online (Sandbox Code Playgroud)

onChange在DOM完全加载后,这会将处理程序附加到input元素.

如果省略,您的方法也应该有效$(document).ready().但是将JS函数附加到元素更像是使用jQuery.

除此之外,您只需要将代码包装成$(document).ready()应该在构建整个DOM树之后执行的代码.你的情况,你只是定义一个功能.无需使用文档就绪,因为无论如何在加载DOM之前无法调用该函数.

阅读文档.post()!