只有一个变量中的一个通过AJAX传递

时间:2013-08-31 04:46:11

标签: php javascript ajax

我正在尝试通过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>

like.php:

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

我在这里缺少什么?

ps:我尝试了一些虚拟值的SQL查询,它运行正常。

3 个答案:

答案 0 :(得分: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浏览器中的网络检查器的网络标签查看实际传递给您服务器的参数。

答案 1 :(得分:2)

使用以下代码在ajaxrequest

中传递多个参数
parameters: {parametername1:value1,parametername2:value2},

然后在php中获取它们

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

答案 2 :(得分:0)

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