【问题标题】:Executing PHP if a link is clicked如果单击链接,则执行 PHP
【发布时间】:2015-05-15 03:42:55
【问题描述】:

我一直在互联网上搜索,当然还有 Stackoverflow 以寻找有关单击链接时如何执行 PHP 命令的答案。这是我尝试“更新”或“删除”表单中数据的一些基本代码。

if(isset($_GET['Delete'])){

                $sql = "DELETE FROM addresses WHERE id ='$_POST[id]'";
                mysql_query($sql,$conn);
                header("Location: form.php");
            };

    if (isset($_GET['update'])){
                $sql = "UPDATE addresses SET firstname='$_POST[firstname]', lastname='$_POST[lastname]', age='$_POST[age]' WHERE id='$_POST[id]'";
                mysql_query($sql,$conn);
                header("Location: form.php");
            };




?>

<?php
while ($row = mysql_fetch_array($retreve, MYSQL_ASSOC)) {

    echo "<form action=form.php method=post>";
    echo "<tr>";
    echo "<td><input type=text name=firstname value={$row['firstname']}> </td>";
    echo "<td><input type=text name=lastname value={$row['lastname']}> </td>";
    echo "<td><input type=text name=age value={$row['age']}> </td>";
    echo "<td><input type=hidden name=id value={$row['id']}> </td>";
    //links insead of buttons
    echo "<td><a href = # id='update'> Update</a></td>";
    echo "<td><a href = # id='delete'> Delete</a> </td>";

} 

每当我单击“更新”和“删除”链接时,我都会尝试调用上述函数。我应该怎么做才能让 PHP 执行。

注意:数据库连接未显示,但已连接。

【问题讨论】:

  • echo "&lt;td&gt;&lt;a href="?update=1" id='update'&gt; Update&lt;/a&gt;&lt;/td&gt;";
  • 它不工作。这基本上是一堆不同的名字,姓氏,年龄,都在一张漂亮的桌子上。但是我应该怎么做才能在特定条目上执行 PHP。
  • 表单方法是post,你永远不会执行那个if statment
  • 那我该怎么办?
  • 混合表单和 url - 你有没有提交按钮?

标签: php html database


【解决方案1】:
echo "<td><a href = 'form.php?type=delete&id=99' id='delete'> Delete</a> </td>";

{$row['id']} 在您的特定情况下为 99 那么:

if($_GET['type']=='delete'){

                    $sql = "DELETE FROM addresses WHERE id ='$_GET[id]'";
                    mysql_query($sql,$conn);
                    header("Location: form.php");
}elseif ($_GET['type']=='update'){

//

}

【讨论】:

  • 新的 if 语句使页面变为空白。
  • 在页面顶部添加error_reporting(E_ALL); ini_set('display_errors', 1);
  • 报错“Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed: use mysqli or PDO in in /home/ubuntu/workspace/form.php on line 22 Notice : 试图在第 25 行的 /home/ubuntu/workspace/form.php 中获取非对象的属性"
  • 这没有意义,因为数据是从数据库中获取的。
  • 感叹疯狂的js大队来了——他们只有一把锤子——祝他们好运
【解决方案2】:

如果您使用相同的表单,请检查您的表单方法。您的表单方法已发布,您的条件包含 $_GET['Delete'] 将其更改为 $_POST['Delete']

【讨论】:

  • 我确实注意到了这一点并且我确实改变了它们。不过还是谢谢。
  • @Matt 你可能知道,这是一个建议,你可以使用表单提交按钮而不是&lt;a href = # id='update'&gt; Update&lt;/a&gt; 或使用onClick="$(this).submit()",如果在页面上提交使用PHP_SELF
  • 我使用了一些旧代码的按钮,它运行良好。这只是我正在做的作业,我的老师不喜欢我使用按钮并希望我使用链接来代替。那是我遇到问题的时候。不过谢谢你的想法。
猜你喜欢
  • 2010-12-09
  • 2017-09-29
  • 2012-05-24
  • 1970-01-01
  • 2016-10-13
  • 2023-03-31
  • 2015-06-25
  • 1970-01-01
  • 2014-02-24
相关资源
最近更新 更多