【问题标题】:Passing form values via POST method in form Update在表单更新中通过 POST 方法传递表单值
【发布时间】:2017-07-27 20:59:20
【问题描述】:

我有一个使用 HTML 表在网页上显示的 sql 数据库表。表格的最后一列是一个“编辑”选项,我希望通过它提示用户更新数据。

为此,我想为用户选择编辑的行 ID 传递这些数据值。

我的显示表有以下代码

<?php
    while($row = mysql_fetch_array($fetched_value, MYSQL_ASSOC))
        {
            echo
                "<tr>
                    <td>{$row['name']}</td>
                    <td>{$row['email_id']}</td>
                    <td>{$row['mobile_number']}</td>;
                    echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
                echo "</tr>\n";
        }
?>

在哪里,

<?php $fetched_value = mysql_query( $fetch_query, $conn ); ?>

请注意,在每一行的末尾我都有一个编辑按钮,我想用它来做进一步的处理。

我想调用(通过POST 方法)一个本地php 文件,比如update-data.php,其中将有代码接受POSTed 数据,显示表格以及预填充 表单空间。

但是,我无法使用 POST 方法将数据传递到此更新 PHP 文件。

您能否建议一种方法来传递那些单击更新链接的特定数据值?

【问题讨论】:

  • 你的代码有很多错误。
  • @PhiterFernandes 谢谢。但是你能更具体一点吗?数据在我的页面中按预期显示。 (我知道 mysql 函数已被弃用。我只使用它们来使我更顺利地过渡到 mysqli。)(我是初学者)
  • 你的第一个echo 你没有关闭字符串封装。如果要为每个字段使用submit 按钮,则需要为每个要提交的字段使用form。您可以只使用加载编辑页面的链接。 &lt;a href="page.php?id={$id}&amp;action=edit"&gt;Edit&lt;/a&gt;.

标签: php html mysql forms post


【解决方案1】:

正如 chris85 所指出的,GET 将是您的选择,除非您愿意将每一行包装在“FORM”中或使用“JS”。

获取

生成链接而不是按钮:&lt;a href="update-data.php?id={$row[id]}&amp;action=edit"&gt;Edit&lt;/a&gt;

您可以通过 CSS 使它们看起来像按钮。

您可以在 update-data.php 中将其余数据提取到 prefil 表单中,或者将其发送到扩展您的 GET 查询中,但请注意:如果您希望传递任何类型的敏感数据,请通过 GET 全部发送- 不是办法。

表格

将每一行包装在一个表格中:

echo
                "
                <form method="post" action="update-data.php">
                <input type="hidden" name="name" value="{$row['name']}">
                <input type="hidden" name="email_id" value="{$row['email_id']}">
                <input type="hidden" name="mobile_number" value="{$row['mobile_number']}">
                <input type="hidden" name="id" value="{$row['id']}">
                <input type="hidden" name="action" value="edit">
                <tr>
                    <td>{$row['name']}</td>
                    <td>{$row['email_id']}</td>
                    <td>{$row['mobile_number']}</td>;
                    echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
                echo "</tr>\n</form>";

在这里,您将发送所有值。与 GET 选项一样,无论您做什么,您都必须发送一个唯一的行标识符(假设您想要更新条目或对它执行任何其他操作),所以我假设您有一个自动递增列 'id',因为它是最常见的事情海事组织。如果不是这种情况,请将其更改为您的唯一行标识符。

JS

第三个选项是向您的提交按钮添加一个onclick 属性,该属性链接到一个 js 函数,该函数提交一个隐藏/生成的表单来填充字段,如上例所示。这可能看起来像这样:

<?php   echo
                "
                <tr>
                    <td>{$row['name']}</td>
                    <td>{$row['email_id']}</td>
                    <td>{$row['mobile_number']}</td>;
                    echo '<td><button id="{$row['id']}" name="edit_button" onclick="send(this)" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
                echo "</tr>\n";
?>
    <scritp>

    function send(button) {
        var form = $('            
        <form method="post" action="update-data.php">                
            <input type="hidden" name="id" value="' + button.id + '">
            <input type="hidden" name="action" value="edit"></form>
    ');
        $('body').append(form);
        form.submit();
    }
    </scirpt>

希望您至少能在这里找到一些有用的东西。我还不是专家:D :D

【讨论】:

    【解决方案2】:

    你可以像这样echo '&lt;td&gt;&lt;button onclick="editData()" type="button" style="border:0; background:transparent;"&gt;&lt;i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/td&gt;'; 。因此,您可以通过 ajax 在 editData() 中传递数据。祝你好运

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      相关资源
      最近更新 更多