首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用$.post进行简单的ajax测试,我错过了什么?

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

Stack Overflow用户
提问于 2010-03-16 05:22:20
回答 6查看 381关注 0票数 0

这是我第一次使用jquery,我正在尝试设置一个简单的AJAX,这样我就可以更好地理解它是如何工作的。不幸的是,我知道的并不多。下面是包含脚本的HTML:

代码语言:javascript
运行
复制
<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:

代码语言:javascript
运行
复制
<?php
$age = $_POST['age'];

if ($age < 30)
  {
  echo "Young";
  }
else if ($age > 30)
  {
  echo "Old";
  }
else
  {
  echo "you're 30";
  }
?>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-16 05:26:44

不确定$.post()函数是否有权访问str参数。试着这样做:

代码语言:javascript
运行
复制
<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()的文档!

票数 5
EN

Stack Overflow用户

发布于 2010-03-16 05:56:55

我认为这里的问题是响应没有被定义。它应该作为参数传递给函数。试试这个:

代码语言:javascript
运行
复制
function ajax(str){
    $.post("ajaxjquerytest.php",str,function(response) {
        $("p").html(response);
    });
}
票数 4
EN

Stack Overflow用户

发布于 2010-03-16 05:51:26

您发布的代码中有几个问题。

  1. 看起来您并没有关闭"ajax“函数上的大括号,所以当您加载页面时,您应该得到一个JS错误。
  2. 您应该这样写

当你的PHP代码需要一个名为suggested

  • Looks的参数,但是你没有在你的代码中显式地给出一个名字,你需要创建一个JS类,并使用像so { AGE: str }这样的适当命名的属性。在jQuery documentation.

  • Also,中有一些这样做的例子在JavaScript中使用this关键字时要小心,根据context it's used in的不同,它可能具有截然不同的含义。(看起来您使用它的方式在页面的最底部进行了描述)。

不过,从Felix的示例开始并从那里开始工作可能会更容易。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2450591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档