Php 使用Jquery删除多行

Php 使用Jquery删除多行,php,jquery,sql-server,Php,Jquery,Sql Server,我正在尝试使用复选框从sql数据库中删除行。只要只标记了一个复选框,就可以正常工作。但我也希望能够删除多行。我见过很多例子,但我不能使它起作用。希望这里的任何人都能帮助我 因此,首先是result.php文件(这里是创建的所有行/表): while($row=sqlsrv\u fetch\u数组($stmt,sqlsrv\u fetch\u两者)){ 回声“; 回声“; 回显“$行[1]”; 回显“$行[2]”; 回声“; } 回声“; 这个文件包含在我的主html(main.html)文件中

我正在尝试使用
复选框
从sql数据库中删除行。只要只标记了一个
复选框
,就可以正常工作。但我也希望能够删除多行。我见过很多例子,但我不能使它起作用。希望这里的任何人都能帮助我

因此,首先是result.php文件(这里是创建的所有行/表):

while($row=sqlsrv\u fetch\u数组($stmt,sqlsrv\u fetch\u两者)){
回声“;
回声“;
回显“$行[1]”;
回显“$行[2]”;
回声“;
}
回声“;
这个文件包含在我的主html(main.html)文件中,下面是Jquery

Jquery将chechbox变量发送到delete.php文件:

    <script type="text/javascript">
    $(".deletelogg").on('click', function(){
            $.ajax({
                type: 'POST',
                url: "php/delete.php",
                data:  {id:$('.toedit:checked:first').val()},
                success: function(data) {
                    alert(data);
                    $("p").text(data);
                }
            });
   });
   </script>
include 'connect-database.php';

for ($i = 0; $i < count($_POST['id']); $i++) {
    if ($_POST['id'][$i] != "") {
        echo $_POST['id'] ;
        $sql = "DELETE FROM Logg Where LoggID LIKE '".$_POST['id']."'";
        $stmt = sqlsrv_query( $conn, $sql);
        if ($stmt == false) {
            die( print_r(sqlsrv_errors(), true) );
        }
    }  
}

$(.deletelogg”)。在('click',function()上{
$.ajax({
键入:“POST”,
url:“php/delete.php”,
数据:{id:$('.toedit:checked:first').val()},
成功:功能(数据){
警报(数据);
$(“p”)。文本(数据);
}
});
});
我的delete.php文件中的最后一个:

    <script type="text/javascript">
    $(".deletelogg").on('click', function(){
            $.ajax({
                type: 'POST',
                url: "php/delete.php",
                data:  {id:$('.toedit:checked:first').val()},
                success: function(data) {
                    alert(data);
                    $("p").text(data);
                }
            });
   });
   </script>
include 'connect-database.php';

for ($i = 0; $i < count($_POST['id']); $i++) {
    if ($_POST['id'][$i] != "") {
        echo $_POST['id'] ;
        $sql = "DELETE FROM Logg Where LoggID LIKE '".$_POST['id']."'";
        $stmt = sqlsrv_query( $conn, $sql);
        if ($stmt == false) {
            die( print_r(sqlsrv_errors(), true) );
        }
    }  
}
包括“connectdatabase.php”;
对于($i=0;$i

我试图从
复选框中创建一个包含所有
id
的数组,但没有成功。。需要帮忙吗

我会这样做:首先做一个“全选”复选框,当选中时,选中所有复选框。然后在表单的末尾,点击“删除”按钮。按下此按钮时,所有复选框都将被删除。我认为这甚至适用于某些复选框(如果只选中其中一些复选框,而不是全部复选框)

我不知道这是否是最好的方式,但这是一个起点。另外,别忘了保护你的应用程序。

一个有效的例子:

您应该遍历复选框并收集值。给定以下HTML:

<table>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="1" />
        </td>
        <td>One</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="2" />
        </td>
        <td>Two</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="3" />
        </td>
        <td>Red</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="4" />
        </td>
        <td>Blue</td>
        <td>Fish</td>
    </tr>
</table>
<button class="deletelogg">Delete</button>
<p></p>
这样,您也可以切换到
foreach()
循环:

include 'connect-database.php';

foreach ($_POST['id'] as $id) {
    echo $id;
    $sql = "DELETE FROM Logg Where LoggID = $id";
    $stmt = sqlsrv_query( $conn, $sql);
    if ($stmt == false) {
        die( print_r(sqlsrv_errors(), true) );
    }  
}

你不能那样做。如果要传递多个值,则需要解析查询中的值。此外,还需要参数化查询。这里有一个sql注入的教科书示例。
<table>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="1" />
        </td>
        <td>One</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="2" />
        </td>
        <td>Two</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="3" />
        </td>
        <td>Red</td>
        <td>Fish</td>
    </tr>
    <tr>
        <td>
            <input type="checkbox" name="id[]" class="toedit" value="4" />
        </td>
        <td>Blue</td>
        <td>Fish</td>
    </tr>
</table>
<button class="deletelogg">Delete</button>
<p></p>
$(".deletelogg").on('click', function () {
    var ids = [];
    $(".toedit").each(function () {
        if ($(this).is(":checked")) {
            ids.push($(this).val());
        }
    });
    if (ids.length) {
        $.ajax({
            type: 'POST',
            url: "php/delete.php",
            data: {
                id: ids
            },
            success: function (data) {
                alert(data);
                $("p").text(data);
            }
        });
    } else {
        alert("Please select items.");
    }
});
include 'connect-database.php';

foreach ($_POST['id'] as $id) {
    echo $id;
    $sql = "DELETE FROM Logg Where LoggID = $id";
    $stmt = sqlsrv_query( $conn, $sql);
    if ($stmt == false) {
        die( print_r(sqlsrv_errors(), true) );
    }  
}