【问题标题】:php how to add edit button inside a table and load data to edit formphp如何在表格中添加编辑按钮并加载数据以编辑表格
【发布时间】:2012-05-31 08:34:10
【问题描述】:

我想要做什么: 使用编辑按钮从 mysql 数据库中加载数据。

出了什么问题: 单击编辑按钮时,它不会在编辑表单上加载数据。

我尝试过的: 我在家中在 Firefox 上尝试了以下代码,它运行良好。但在工作中,它无法在编辑表单中加载 Firefox 中的数据,而在 IE 中单击该按钮什么也不做。

<?php
echo '<table id="viewAll">';
            echo '<tr>';
            echo '<th>Product</th>';
            echo '<th>Status</th>';
            echo '<th>Summary</th>';
            echo '<th>Created</th>';
            echo '<th>Updated</th>';
            echo '<th>Edit</th>';

            echo '</tr>';


            while ($data=mysqli_fetch_array($result)){

            echo '<tr align="center">

            <td>'.$data['product'].'</td>
            <td>'.$data['status'].'</td>
            <td align="left">'.$data['summary'].'</td>
            <td>'.$data['created'].'</td>
            <td >'.$data['updated'].'</td>';

            echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\"><input type=\"submit\" value=\"Edit\" /></a></td>";

            echo '</tr>';


                }#end of while


            }#end of if



echo '</table>';
?>

然后我做:

$id=$_GET['id'];



            $query="SELECT * FROM tickets WHERE id='$id'";


            $result = mysqli_query($db,$query) or die( "My query ($query) generated an error: ".mysql_error());

            $data=mysqli_fetch_array($result);





            mysqli_close($db);

我使用数据数组中的内容将其加载到编辑表单中的字段中..

不幸的是,这在 IE 中不起作用。单击编辑按钮不执行任何操作。有人可以告诉我如何解决吗?谢谢。

【问题讨论】:

    标签: php html button


    【解决方案1】:

    试试这个:

    echo "<td><form action=\"editForm.php\" method=\"get\"><input type=\"hidden\" name=\"id\" value=\"$data['id']\" style=\"text-decoration: none\" /><input type=\"submit\" value=\"Edit\" /></form></td>";
    

    这意味着您仍然可以使用按钮。

    另外,我强烈建议如果您不使用表格来存储表格数据,请寻找替代方案,例如 &lt;div&gt;s。

    记得清理您的 SQL 查询,否则您可能容易受到 SQL 注入攻击。 (例如$id=$_GET['id']; => $id=mysqli_real_escape_string($conn, $_GET['id']); 其中$conn 是您的 MySQL 连接对象)。

    您可以在Google 上搜索这些内容。

    【讨论】:

    • 谢谢,但您的代码出现以下错误:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in F:\PHP Ninja\xampp\htdocs\testdrive\includes\functions.php on line 4 知道为什么吗?谢谢。
    • @greenhoodlum functions.php 中有什么?
    • 糟糕——我的 MySQL 代码出错了(忘记了结束括号)——它应该是 $id=mysqli_real_escape_string($conn, $_GET['id']);!我已经更新了我的帖子。
    • 我想我修好了..会进一步测试并回来。
    • 由于某种原因,该代码似乎无法在我的工作服务器上运行。我正在使用相同的浏览器,但它失败了。我很困惑。
    【解决方案2】:

    你不应该使用&lt;input type="submit" value="edit" name="edit" /&gt;

    只有"&lt;a href='editForm.php?id='".$data['id']."' style='text-decoration: none' /&gt;Edit&lt;/a&gt;" 足以将数据发送到editForm.php 页面。

    PS:提交按钮只能用于提交表单内的所有表单元素。

    【讨论】:

      【解决方案3】:

      更正您以这种方式编写按钮的行

      echo "<td><a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\">Edit</a></td>";
      

      单击按钮尝试提交表单。但是您要做的是访问页面editForm.php

      PS:你应该阅读一些关于 PHP 和 html 的教程来学习最佳实践;)

      【讨论】:

      【解决方案4】:

      在第一个 PHP 脚本的 while 循环中,回显编辑按钮的行是错误的。
      您必须使用连接函数 . 和引号来获取 $data["id"] 中的值
      您的行 echo "&lt;td&gt;&lt;a href=\"editForm.php?id=$data[id]\" style=\"text-decoration: none\"&gt;Edit&lt;/a&gt;&lt;/td&gt;"; 必须替换为:

      echo "&lt;td&gt;&lt;a href=\"editForm.php?id=".$data['id']."\" style=\"text-decoration: none\"&gt;Edit&lt;/a&gt;&lt;/td&gt;";

      【讨论】:

      • 谢谢我现在这样做,但它仍然在 IE 中失败。
      【解决方案5】:

      或者您可以使用 jQuery 以一种很好的方式来完成此操作。尝试阅读this

      【讨论】:

        猜你喜欢
        • 2022-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多