0

我正在尝试通过 AJAX 传递 2 个变量。但是现在只有其中一个被传递并保存在我的数据库中。

$image_id 被通过。

$uid 没有通过。

<div class="interaction"><a href="#" class="like" id="<?php echo $image_id ?>"
xml-id="<?php echo $uid ?>"><?php echo number_format($image_likes) ?></a>
</div>    


<script type="text/javascript">
$(function() {
$(".like").click(function() 
{
var id = $(this).attr("id");
var uid = $(this).attr("uid");
var dataString = 'id='+ id +'&uid=' + uid ;

var parent = $(this);

$.ajax({
type: "POST",
url: "like.php",
data: dataString,
cache: false,

success: function(html)
{
parent.html(html);
}
});
return false;
});
});
</script>

像.php:

if(($_POST['id']) && ($_POST['uid'])) {
$image_id=$_POST['id'];
$user_id=$_POST['uid'];
*some mysql query*

我在这里缺少什么?

ps:我用一些虚拟值尝试了 SQL 查询,它工作正常。

4

3 回答 3

3

你可以改变你的锚:

<a href="#" class="like" id="<?php echo $image_id ?>" xml-id="<?php echo $user_id ?>">

到:

<a href="#" class="like" id="<?php echo $image_id ?>" data-uid="<?php echo $user_id ?>">

然后获取 user_id 的值,例如:

var uid = $(this).data("uid");

您可以使用 Chrome 中网络检查器的网络选项卡来查看实际传递给您的服务器的参数。

于 2013-08-31T04:52:14.463 回答
2

使用下面的代码在 ajaxrequest 中传递多个参数

parameters: {parametername1:value1,parametername2:value2},

然后在 php 中获取它们

if(($_POST['parametername1']) && ($_POST['parametername2'])) {
$image_id=$_POST['parametername1'];
$user_id=$_POST['parametername2'];
*some mysql query*
于 2013-08-31T04:51:08.673 回答
0

您的标记中没有名为“uid”的属性。

于 2013-08-31T04:52:19.493 回答