使用复选框检查要删除的列

时间:2013-07-13 05:28:01

标签: php javascript html sql

我正在制作一个可以添加API的面板。 现在问题是,我需要让用户能够删除某些列并更新列。

$use = $mysqli->query("SELECT * FROM api");
//Panel
echo '
<!---Buttons-->
<a href=\'?addnew\'>Add new</a> <a href=\'?update\'>Update</a> <a href=\'?delete\'>Delete all selected columns</a>
<!---Table-->
<form method=\'POST\' action=\'?\'>
<table border="1">
<tr>
<!---Main Columns-->
<td></td>
<td>ID:</td>
<td>Name:</td>
<td>URL:</td>
<td>Format:
</tr>';
while($us = $use->fetch_array()){
    //print all API's
    echo'
    <tr>
    <!---All values to be echoed, ID is the only one who can\'t be updated from the panel-->
    <td><input type="checkbox" name="checkbox'.$us['id'].'"></td>
    <td>'.$us['id'].'</td>
    <td><input type=\'text\' name="name'.$us['id'].'" value=\''.$us['name'].'\'></td>
    <td><input type=\'text\'  name="url'.$us['id'].'" value=\''.$us['url'].'\'></td>
    <td><input type=\'text\'  name="format'.$us['id'].'" value=\''.$us['format'].'\'></td>
    </tr>';
}   
echo'</table></form>';

这是我迄今为止所做的一些事情。这对于小组本身来说基本上就是这样。

这是我用来更新和删除

的内容
if (isset($update)) {
    while($us = $use->fetch_array()){
        if ($mysqli->query("UPDATE api SET name='".$_POST['name'.$us['id']]."', url='".$_POST['url'.$us['id']]."', format='".$_POST['format'.$us['id']]."'") == TRUE) {
            echo 'Updated';
            echo '<meta http-equiv="refresh" content="10; URL=api%20(2).php">';
        }

    }
}
if (isset($delete)) {
    while($us = $use->fetch_array()){
        if (isset($_POST['checkbox'.$us[id]])) {
            if ($mysqli->query("DELETE FROM api WHERE id = '".$us['id']."'") == TRUE) {
                echo 'Success';
                echo '<meta http-equiv="refresh" content="2; URL=api%20(2).php">';
            }
        }
    }
}

我也想过在这里实施一些ajax,所以如果你愿意,你也可以帮我解决这个问题:)

问题是由于某种原因它不能检索POST,我不知道为什么。如果你们中的一个能够为我提供当前代码的解决方案或找到更好的替代方案,那就太棒了。感谢

1 个答案:

答案 0 :(得分:0)

替换

    <a href=\'?addnew\'>Add new</a> <a href=\'?update\'>Update</a> <a href=\'?delete\'>Delete all selected columns</a>
    <!---Table-->
    <form method=\'POST\' action=\'?\' id="">

    <a href=\'?addnew\'>Add new</a> <a href=\'javascript:void(0)\' onclick=\'document.getElementById("frm").value(\'update\');document.getElementById("frm").submit()\'>Update</a> <a href=\'javascript:void(0)\' onclick=\'document.getElementById("frm").value(\'delete\');document.getElementById("frm").submit()\'>Delete all selected columns</a>
    <!---Table-->
    <form method=\'POST\' action=\'?\' id="frm">
    <input type="hidden" name="action" id="action" value="">

替换

    <td><input type="checkbox" name="checkbox'.$us['id'].'"></td>

    <td><input type="checkbox" name="chk[]" value="'.$us['id'].'"></td>

替换

    if (isset($update)) {
        while($us = $use->fetch_array()){
            if ($mysqli->query("UPDATE api SET name='".$_POST['name'.$us['id']]."', url='".$_POST['url'.$us['id']]."', format='".$_POST['format'.$us['id']]."'") == TRUE) {
                echo 'Updated';
                echo '<meta http-equiv="refresh" content="10; URL=api%20(2).php">';
            }

        }
    }

    if (isset($_POST['action']) && $_POST['action'] == 'update']) && $_POST['chk']) {
        foreach($_POST['chk'] as $id){
            if ($mysqli->query("UPDATE api SET name='".$_POST['name'.$id]."', url='".$_POST['url'.$id]."', format='".$_POST['format'.$id]."'") == TRUE) {
                echo 'Updated';
            }
        }
        header('Location: api (2).php');
    }

并为删除做同样的事情