【问题标题】:Single PHP form with 2 (edit and delete) buttons带有 2 个(编辑和删除)按钮的单个 PHP 表单
【发布时间】:2011-05-23 14:42:18
【问题描述】:

我正在尝试设置一个带有 2 个按钮的表单 - 在页面 delete.php 上运行的“DELETE”和在 edit.php 上运行的“EDIT”。

所以我需要根据他们点击的按钮采取不同的操作...

这是我的代码。

$con = mysql_connect("localhost","user","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$result = mysql_query("SELECT * FROM myTable");

// Need to change the action depending on what button is clicked
echo "<form name='wer' id='wer' action='delete.php' method='post' >";
echo "<table border='1'>";

while($row = mysql_fetch_array($result))
  {
    echo "<tr>";
    echo "<td>" . $row['id'] . "</td>";
    echo "<td>" . $row['page_title'] . "</td>";
    echo "<td><input type='radio' name='test1' value='" . $row['id'] . "' /></td>";
    echo "</tr>";
  }

echo "<tr>";
echo "<td>&nbsp;</td>";
echo "<td>&nbsp;</td>";
echo "<td><input type='submit' name='delete' value='Delete' /> <input type='submit' name='edit' value='Edit' /></td>";
echo "</tr>";
echo "</table>";
echo "</form>";

mysql_close($con);

【问题讨论】:

    标签: php forms form-submit


    【解决方案1】:

    你可以用 JavaScript 做到这一点:

    <input type='button' value='Delete' onclick='
        this.form.action = "delete.php";
        this.form.submit();
    ' />
    

    或者您可以使用 PHP 来实现,例如,将表单操作设为 action.php,其中将包含:

    if (!empty($_REQUEST['delete'])) {
        require_once dirname(__FILE__) . '/delete.php';
    else if (!empty($_REQUEST['edit'])) {
        require_once dirname(__FILE__) . '/edit.php';
    }
    

    【讨论】:

    • 我已经让你的 PHP 方式工作了,但我不相信它是比 @ThiefMaster 更好的选择(我还没有开始工作)。你能解释一下为什么你会先使用你的方法吗?
    • 因为如果你把文件内部的逻辑分开,会更容易管理。下次您需要对编辑功能进行更改时,您可以编辑 edit.php 文件并且您确切地知道在哪里查找。如果您将整个应用程序放在一个文件中,您将不得不开始寻找逻辑所在的位置。将逻辑分离到多个文件中对于整个项目来说是一个好主意,而不仅仅是对于它的这一部分。
    【解决方案2】:

    检查isset($_POST['delete'])isset($_POST['edit'])

    但是,删除按钮是一个的主意。当按 ENTER 键时,浏览器通常使用第一个按钮 - 在表单中按 Enter 不应删除内容。

    【讨论】:

    • 别忘了把action改成指向当前页面
    • 我知道你打算用这个去哪里,但是我在哪里检查这个?
    • 在执行此回显之前位于顶部
    • 所以if(isset($_POST['delete'])) { echo "&lt;form name='wer' id='wer' action='delete.php' method='post' &gt;"; } if(isset($_POST['edit'])) { echo "&lt;form name='wer' id='wer' action='edit.php' method='post' &gt;"; }???
    猜你喜欢
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2015-07-30
    相关资源
    最近更新 更多