我有这个脚本:
var wall_user_id = "<?php echo $_SESSION['user_id'];?>";
$.ajax({
type: "POST",
url: "insert.php",
data: "user_id=" + wall_user_id,
success: function () {
$('ul#posts').prepend(wall_post);
}
});//end success function
将wall_user_id发送到php脚本:
<?php
require 'core/functions/init.php';
$user_id = mysql_real_escape_string($_POST['user_id']);
$sql = 'INSERT INTO wall (user_id) VALUES('.$user_id.')';
mysql_query($sql);
?>
这样可以正常工作,但如果我尝试添加更多这样的值,则不行:
var wall_user_id = "<?php echo $_SESSION['user_id'];?>";
var wall_userimage = "<?php echo $user_data['imagename']; ?>";
$.ajax({
type: "POST",
url: "insert.php",
data: "user_id=" + wall_user_id +"userimage="+ wall_userimage,
success: function () {
$('ul#posts').prepend(wall_post);
}
});//end success function
和insert.php:
<?php
require 'core/functions/init.php';
$user_id = mysql_real_escape_string($_POST['user_id']);
$userimage = mysql_real_escape_string($_POST['userimage']);
$sql = 'INSERT INTO wall (user_id, image) VALUES('.$user_id.','.$userimage.')';
mysql_query($sql);
?>
它不会将任何值插入数据库。 我做错了什么?
答案 0 :(得分:4)
您可以在data
:
data: { user_id: wall_user_id, userimage: wall_userimage }
并在您的示例中使用&
分隔参数:
data: "user_id=" + wall_user_id + "&userimage=" + wall_userimage
但第一种方法是推荐的方法,因为jQuery负责正确地对值进行url编码。有了你的例子,如果你想要正确地做,你应该写:
data: "user_id=" + encodeURIComponent(wall_user_id) + "&userimage=" + encodeURIComponent(wall_userimage)
这显然是太多的代码。所以使用第一种方法。
答案 1 :(得分:1)
数据查询字符串错误。你忘记了&
data : "user_id=" + wall_user_id +"&userimage="+ wall_userimage
或者您可以使用对象
data : { 'user_id': wall_user_id, 'userimage': wall_userimage }
答案 2 :(得分:0)
无法像这样发送多个变量。您将发布如下的值 数据:“user_id =”+ wall_user_id +“userimage =”+ wall_userimage
这对多个变量不起作用。你可以做类似下面的事情
$ .post(“您需要发布的地址”,{“user_id”:wall_user_id,“userimage”:wall_userimage},函数(响应) { ........... });
或
data:{“user_id”:wall_user_id,“userimage”:wall_userimage}
数据应作为数组传递