jQuery $ .post()怀疑!

时间:2010-08-04 12:50:56

标签: jquery

我正在尝试使用POST将变量传递给来自try.htm的chat.php

try.htm的代码是:

<head>
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type = "text/javascript">
     function yo() {
       var text = $("#msg").val();
       $.post("chat.php",msg:text);
     }
</script>
</head>
<body>

<input type="text" id="msg" onkeyup="yo()">
<div id="display">Change</div>            
</body>

chat.php的代码是:

<?php
$msg=$_POST['msg'];
mysql_connect("localhost","root");
mysql_select_db("user");
mysql_query("INSERT INTO user (name,pwd,status) VALUES ('$msg','work','0')") or die(mysql_error());
?> 

问题是'msg'变量似乎没有传递到chat.php! 怎么了?

4 个答案:

答案 0 :(得分:2)

将其更改为:

$.post("chat.php", { msg:text } );

jQuery期望数据作为对象传递,{ ... }实际上将为我们创建一个匿名对象。 msg:text - 没有大括号 - 遗憾的是没有做太多事情,并且会在运行时抛出错误。

将两者组合在一起:{ msg:text }创建一个匿名对象,其属性msg填充了text变量的值。

答案 1 :(得分:1)

参数作为数组传递:

<head>
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type = "text/javascript">
     function yo() {
       var text = $("#msg").val();
       $.post("chat.php", {msg:text});
     }
</script>
</head>
<body>

<input type="text" id="msg" onkeyup="yo()">
<div id="display">Change</div>            
</body>

答案 2 :(得分:0)

你做错了,使用一个合适的JSON对象:

$.post("chat.php",  { msg:text });

答案 3 :(得分:0)

你忘了围绕$ .post

的数据参数的花括号
$.post("chat.php",{msg:text});