Отправить идентификатор флажка на php через AJAX - PullRequest
0 голосов
/ 25 июня 2018

Я хочу создать сетевой график с помощью флажков.Если я выберу 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>

node.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);
            }

        }

1 Ответ

0 голосов
/ 25 июня 2018

Используйте приведенный ниже запрос, Нужно использовать IN параметр mysql.

$sql2=$conn->prepare("SELECT id, data FROM table1 WHERE id IN (".$_POST['insert'].") GROUP BY id");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...