用mysql数组填充php表单字段(点击)

时间:2011-09-20 22:58:22

标签: php mysql arrays

我是一名php / mysql新手,致力于开发票应用程序。我有一个summary.php页面,其中我使用php查询数据库并使用检索到的数据呈现一个表:

< ?php
    mysql_connect ... [ snip ] ...

    // retrieve all data in the 'Invoices' table ...
    $result = mysql_query("SELECT * FROM Invoices") or die(mysql_error());
    // ... and store each record in a variable:
    $row = mysql_fetch_array($result);

我的表是:

<table class="record-summary">
    <form action="/edit.php" method="post">
    <tr>
        <th ... 
        [ snip: more table headers ] ...

<?php
    $controls = "<input type=\"submit\" value=\"details.php\" /><input type=\"submit\" value=\"edit.php\" />";
    while($row = mysql_fetch_array($result))
        {
        echo "<tr>";
            echo "<td class=\"id\">". $row['ID']. "</td>";
            echo "<td class=\"inv\">". $row['invoiceNumber']. "</td>";
            [ snip: more data cells ] ...
            echo "<td class=\"controls\">". $controls . "</td>";

每行中的最后一个单元格(td.controls)包含两个提交,一个链接到详细视图(details.php),另一个链接到表单页面(edit.php)。我的目标是使用记录/行的值填充任一页面。我需要帮助的地方是如何使用$ row变量来携带这个数组,例如edit.php,并填充表单中的字段(实际上我很确定我有表单输入的值属性的语法) 。 details.php和edit.php都有 all 表示的记录中的数据字段,但在summary.php中只显示了一部分字段(ergo,'summary.php')。所以我的问题是:

如何确保在单击任一按钮时,$ row包含给定记录的值,以及如何将数组推送到details.php或edit.php中?

非常感谢,

的src

2 个答案:

答案 0 :(得分:3)

您可以将ID传递给edit.phpdetails.php但不包含表单,只有两个指向edit.php?id=details.php?id=的链接:

<?php
    // $controls = "<input type=\"submit\" value=\"details.php\" /><input type=\"submit\" value=\"edit.php\" />"; <-- is not necessary
    while($row = mysql_fetch_array($result))
    {
        echo "<tr>";
        echo "<td class=\"id\"><a href=\"details.php?id=". $row['ID']. "\">details.php</a> | <a href=\"edit.php?id=". $row['ID']. "\">edit.php</a></td>";
        echo "<td class=\"inv\">". $row['invoiceNumber']. "</td>";
        // [ snip: more data cells ] ...
        // echo "<td class=\"controls\">". $controls . "</td>"; <-- is not necessary

您可以使用id:

获取数据
//....
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
    $id = $_GET['id'];
}
else
{
    die("There is no id.");
}

$sql = sprintf("SELECT * FROM Invoices WHERE id = %s", $id);
$result = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_array($result);

答案 1 :(得分:0)

echo "<input type=\"hidden\" name=\"row\" value=\"" . $row . "\"/>";

在您的循环中包含此内容,您的表单的“操作”脚本将能够通过$row访问相应的$_POST['row']变量。