我正在尝试使用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! 怎么了?
答案 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});