我正在尝试通过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查询,它运行正常。
答案 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”的属性。