如何在列表项中获取$ id?

时间:2017-09-14 03:20:58

标签: database wordpress

我创建了一个函数list_product show list product。

我想在列表产品上的每个产品上都有一个按钮delete

但我无法删除$id

有什么方法可以删除列表数据库中的行吗?

我的功能如下:

<?php

function product_list() {
    ?>
    <div class="wrap">
        <?php
        global $wpdb;
        $table_name = $wpdb->prefix . "product";
        if (isset($_POST['delete'])) {
            $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE id = %s", $id));
        } else {
            $rows = $wpdb->get_results("SELECT id,name from $table_name");
        }
        ?>
        <table>
            <tr>
                <th>ID</th>
                <th>Name</th>
            </tr>
            <?php foreach ($rows as $row) { ?>
                <tr>
                    <td><?php echo $row->id; ?></td>
                    <td><?php echo $row->name; ?></td>
                    <td><a href="<?php echo admin_url('admin.php?page=product_update&id=' . $row->id); ?>">Cập nhật</a></td>
                    <td><input type='submit' name="delete" value='Delete' class='button' onclick="return confirm('&iquest; Confirm Delete?')"></td>
                </tr>
            <?php } ?>
        </table>
    </div>
    <?php
}

感谢。

1 个答案:

答案 0 :(得分:0)

我不是真正的PHP专家,但我认为这是正在发生的事情 您没有在任何地方发送$id变量。此外,您的代码中没有任何形式。由于您没有使用JS提交,因此没有任何提交。

请尝试以下代码。

<?php

function product_list() {
    ?>
    <div class="wrap">
        <?php
        global $wpdb;
        $table_name = $wpdb->prefix . "product";
        if(isset($_POST['row_id'])){
            $id = $_POST['row_id'];
            $id = $id[0];
        }else{
            $id = '';
        }
        if (isset($_POST['delete'])) {
            $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE id = %s", $id));
        } else {
            $rows = $wpdb->get_results("SELECT id,name from $table_name");
        }
        ?>
<form method="post">
        <table>
            <tr>
                <th>ID</th>
                <th>Name</th>
            </tr>
            <?php foreach ($rows as $row) { ?>
                <tr>
                    <td><?php echo $row->id; ?></td>
                    <td><?php echo $row->name; ?></td>
                    <td><a href="<?php echo admin_url('admin.php?page=product_update&id=' . $row->id); ?>">Cập nhật</a></td>
                    <td>
                        <input type="hidden" name="row_id[]" value="<?php echo $row->id; ?>">
                        <input type='submit' name="delete" value='Delete' class='button' onclick="return confirm('&iquest; Confirm Delete?')">
                    </td>
                </tr>
            <?php } ?>
        </table>
</form>
    </div>
    <?php
}