1

我正在制作一个面板,您可以在其中添加您的 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,但我不知道为什么。如果你们中的一个人可以为我当前的代码提供一个解决方案,或者找到一个更好的替代方案,那就太好了。谢谢

4

1 回答 1

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');
    }

并为删除做同样的事情

于 2013-07-13T06:12:52.737 回答