【问题标题】:Delete button for each table row每个表格行的删除按钮
【发布时间】:2013-04-17 22:44:00
【问题描述】:

我成功地使用以下代码从我的数据库中读取和显示数据: http://pastebin.com/rjZfBWZX 我还为表格的每一行生成一个删除按钮:)单击删除按钮调用“obrisi.php”,它应该删除该行,但我搞砸了:S 这是obrisi.php代码:

http://pastebin.com/mrFy1i7S

我收到 Parse 错误:语法错误,意外的 'FROM' (T_STRING) :S

【问题讨论】:

  • 我的数据库中的'id'列是主键并且是唯一的
  • 这两个脚本都不会像您的问题那样产生解析错误。
  • 正如 VolkerK 所说,看不到您的解析错误可能在哪里......虽然为什么所有的空白?清理干净。
  • 对不起,我搞砸了:S 我现在遇到一个新错误:注意:未定义的索引:G:\XAMP\xampp-port 中的 id ... obrisi.php 在第 54 行我尝试使用 $id = $row['id']; 为每个删除按钮表单生成唯一 id " withing while loop 但是我如何访问 obrisi.php 中的某些 id 值?我试过 $id = $_GET['id']; 但我得到了上面提到的错误:/

标签: php button


【解决方案1】:

作为附加说明,如果这将在某个时候在实时系统中使用,您需要在 obrisi.php 中检查 $id 它实际上是一个 ID,而不是像更多 sql 那样令人讨厌和意外的东西,查找sql​​注入。

【讨论】:

    【解决方案2】:
    echo  "<td>" . " <input type='submit' id= '$id' . ' value='Delete' >" .  "</td>";
    

    这里有一些简单的错误。这将输出($id = 1):

    <td><input type='submit' id= '1' . ' value='Delete' ></td>
    

    此行应更正为

        echo  '<td><input type="submit" id="' . $id . '" value="Delete" ></td>';
    

    这也出错了。

    echo "<form action="obrisi.php" method="post">";
    

    应该是这样的:

    echo '<form action="obrisi.php" method="post">';
    

    但主要问题是帖子中没有给出字段ID。 html 元素的 id 不会在提交时发送。它基本上是在 HTML 结构中识别该元素。

    当使用提交按钮时,您必须将表单的范围限制为该行并使用隐藏的输入字段,或者使用thanpa建议的链接

    澄清一下:如果你想用一个帖子来做(但我建议使用 $_GET)

    while ($row = mysqli_fetch_array($result) )
    {
    
    $id = $row['id'];
    
    echo "<tr>";
    echo '<form action="obrisi.php" method="post">';
    echo "<td>" . $row['Ime'] . "</td>";
    echo "<td>" . $row['Prezime'] . "</td>";
    echo "<td>" . $row['Grad'] . "</td>";
    echo "<td>" . $row['Drzava'] . "</td>";
    echo "<td>" . $row['Obavijesti'] . "</td>";
    echo "<td>" . $row['Tekst'] . "</td>";
    echo "<td>"
    echo  '<td><input type="hidden" name="id" value="' . $id . '"/><input type="submit" value="Delete" ></td>';
    echo "</form>
    echo "</tr>";
    }
    

    并从脚本的开头和结尾删除表单的回声。

    【讨论】:

      【解决方案3】:

      让我们尝试使用 _GET 而不是 _POST。

      在您的主代码中,您需要将第 39 行(输入)更改为:

          echo  "<td>" . " <input type='submit' id= '$id' . ' value='Delete' >" .  "</td>";
      

      到:

          echo  "<td><a href='obrisi.php?id=$id'>Delete</a></td>";
      

      在您的 obrisi.php 中将第 3 行(id 设置)从:

          $id = $_POST['id'];
      

      到:

          $id = $_GET['id'];
      

      最后作为一个很好的补充,通过在 php 标签关闭之前在 obrisi.php 文件末尾添加以下行来重定向回主页。

          header('location:index.php');
      

      其中 index.php 是您拥有的主页的名称。

      【讨论】:

      • 当然,您可以通过在按钮上添加 onclick 参数并使用 javascript 重定向到正确的 url 来使用按钮而不是链接来实现。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 2013-02-23
      • 2021-09-09
      • 1970-01-01
      相关资源
      最近更新 更多