[mysql]为什么删除按钮空隙编辑按钮执行

标签: MySQL PHP
发布时间: 2017/4/9 23:20:20
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我与编辑表中有数据库生成内容和删除按钮的形式在行的末尾。

<td>
    <form action="?" method="post">
        <div class="">
            <input type="hidden" name="id" value="<?php htmlspecialchars($item['id']); ?>">

            <input type="hidden" name="action" value="edit_daily_shift_report">
            <input type="submit" value="Edit" onclick="return confirm('Edit this report?');"> 

            <input type="hidden" name="action" value="delete_daily_shift_report">
            <input type="submit" value="Delete" onclick="return confirm('Delete this report?');"> 
        </div>
    </form>
</td>

如果我删除删除按钮,编辑代码工作正常。但目前这两个按钮,用编辑按钮将失败和删除一行中的项。我很为难。不只是编辑按钮的操作值被忽略,执行删除按钮的操作值。任何帮助感谢 !

这里是控制编辑和删除的代码︰

/***********************  Edit Daily Shift Report  ************************/
if (isset($_POST['action']) && $_POST['action'] === 'edit_daily_shift_report')
{
    include '../includes/dbconnect-local.php';

    try 
    {
       $sql = 'SELECT * FROM daily_shift_report WHERE id = :id'; 
       $s = $db->prepare($sql);
       $s->bindValue(':id', $_POST['id']);
       $s->execute();
    }
    catch (PDOException $e)
    {
        $error = 'Error deleting data.' . $e->getMessage();
        include 'error.html.php';
        exit();
    }

    // Assign page title value
    $pageTitle = 'Edit Daily Shift Report';

    // Store single row resut in $item associative array
    $item = $s->fetch(PDO::FETCH_ASSOC);

    // Display report content in form
    include 'edit_daily_shift_report.html.php';
    exit();
}

/*********************  Delete from Daily Shift Report  *******************/
if (isset($_POST['action']) && $_POST['action'] === 'delete_daily_shift_report')
{
    include '../includes/dbconnect-local.php';

    try 
    {
       $sql = 'DELETE FROM daily_shift_report WHERE id = :id'; 
       $s = $db->prepare($sql);
       $s->bindValue(':id', $_POST['id']);
       $s->execute();
    }
    catch (PDOException $e)
    {
        $error = 'Error deleting data.' . $e->getMessage();
        include 'error.html.php';
        exit();
    }

    echo '<span style="color:#ff0000;">Daily Shift Report DELETED successfully!</span>';
}

谢谢。

解决方法 1:

您需要了解 post 请求的工作原理。正如你所知,你有两个 action 字段,一个用于删除,另一个用于编辑。 总之,你的问题是,那里是没有办法到康涅狄格州具体的输入字段,对不同的按钮。

我宁愿认为是你设置的按钮名称 action 和作为您已经使用隐藏域的值的值。 有这你也得在你的 html 中做出很小的更改。而不是:

<input type="submit" value="something" onclick="something">

使用该操作︰

<button name="action" value="edit" onclick="something">Edit</button>

和同样的删除按钮

当您使用 button 标记而不是 input ,你可以将值设置为是从显示,这使得它更清洁的 PHP 代码时检查的值不同的按钮 $_POST['action'] 之后

官方微信
官方QQ群
31647020