繁体   English   中英

如何在AJAX的帮助下将多个ID传递给PHP,并显示用户选择的图像?

[英]How can I pass the multiple Id to PHP with the help of AJAX and display the images which are select by the user?

我的数据库中有100多个用户,并且所有用户都带有一个复选框。 当用户单击复选框时,Id值将在AJAX的帮助下传递给PHP,并显示用户图像。

上面的语句运行良好,因为我正在将单个id传递给PHP。

现在的问题是,如何在AJAX的帮助下将多个ID传递给PHP并显示用户选择的图像?

如果我选中了单个ID,则它将显示单个图像;如果选中2复选框,则它将显示两个图像,最多显示三个。

我想我必须使用SESSION和ARRAY。 您能帮我吗?

<input type="checkbox" value="<?php echo $id;?>" name="display_id" id="display_id" />

AJAX

$(document).ready(function() {
    $("[type=checkbox]").click(function() {
        var user_id = $(this).val();
        $.ajax({
            type: "POST",
            url: "process", // 
            data: 'id=' + user_id,
            success: function(msg) {
                $("#display_id").html("<img src='images/profile/" + msg + "' alt='' />");
            },
            error: function() {
                alert("failure");
            }
        });
    });
});

处理

$_SESSION['id_user']=$_POST['id'];
$sql_compare="SELECT * FROM register WHERE Id=".$_SESSION['id_user'];
$compare_query=$conn->query($sql_compare);
if ($compare_query->num_rows > 0) {
    while($userdata12=$compare_query->fetch_assoc()){ 
        $compare_pic=$userdata12['profile_pic'];
    }
}
echo $compare_pic;
exit();

首先,你应该这样做

arr = [];
$("[type='checkbox']:checked").each(function(){
    arr.push($(this).val());
});

那你应该这样做

var params = {
  users : arr
};     

然后你的ajax会是

$.ajax({
             type: "POST",
             url: "process", // 
             data:params,
.
.
.
.

现在,检查所有检查的用户ID是否都在服务器端。 如是,

然后获取所有数据,并将其作为响应返回给ajax。

编辑1

$sql_compare="SELECT * FROM register WHERE Id IN (".implode(',',$_SESSION['id_user']).")";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM