【发布时间】:2018-12-03 20:42:44
【问题描述】:
我想使用复选框创建网络图。如果我选择 1 个或多个复选框,然后单击按钮,我想从选定的复选框中绘制网络图。它实际上有效,但如果我选择超过 1 个,它只会打印 1 个节点,但如果我只选择 1 个,它工作得很好。我该如何解决这个问题?
index.php
<td align="center"><input id="'.$row["id2"].'" class="checkboxes" type="checkbox" value="'.$row["id2"].'"</td>
<script>
$(document).ready(function(){
$('.relations').click(function(e){
e.preventDefault();
$("#dataModal3").modal("hide");
// Checkboxes
var insert=[];
$('.checkboxes').each(function(){
if($(this).is(":checked")){
insert.push($(this).val());
}
});
insert=insert.toString();
var data_id = $(this).attr("id");
$.ajax({
url:"nodes.php",
method:"post",
dataType: "json",
data:{data_id:data_id,insert:insert},
success:function(data){
$('#moreInfo').html(data);
$('#dataModal').modal("show");
var nodeDatas = new vis.DataSet();
nodeDatas = data;
$.ajax({
method:"post",
dataType: "json",
url: "edges.php",
data:{data_id:data_id},
success: function(data){
var edgeDatas = new vis.DataSet();
edgeDatas = data;
var myDiv = document.getElementById("moreInfo");
data={
nodes: nodeDatas,
edges: edgeDatas
};
var options = {
};
var network = new vis.Network(myDiv, data, options);
}
});
}
});
});
});
</script>
nodes.php
if(isset($_POST["insert"])){
$sql2=$conn->prepare("SELECT id, data
FROM table1
WHERE id=?
GROUP BY id");
$sql2 -> bind_param('i', $_POST['insert']);
$sql2 -> execute();
$result2 = $sql2 -> get_result();
$sql2 -> close();
while($row = mysqli_fetch_assoc($result2)){
$id2 = $row['id'];
$data = $row['data'];
$arr[] = array("id" => $id2,
"label" => $data);
}
}
【问题讨论】:
-
尝试将
WHERE id=?更改为WHERE id in (?)
标签: javascript php ajax checkbox