我是一个 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 是:
<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) 包含两个提交,一个链接到详细 View (details.php),另一个链接到表单页面 (edit.php)。我的目标是用记录/行的值填充任一页面。我需要帮助的地方是如何准确地使用 $row 变量将此数组携带到例如 edit.php,并填充表单中的字段(实际上我相当确定我有表单输入值属性的语法) . details.php 和 edit.php 都显示了记录中的所有数据字段,尽管在 summary.php 中只显示了部分字段(因此,'summary.php')。所以我的问题是:
我如何确保在单击任一按钮时,$row 包含给定记录的值,以及如何将数组推送到 details.php 或 edit.php 中?
非常感谢,
来源
最佳答案
您可以将 ID 传递给 edit.php
和 details.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);
关于php - 用 mysql 数组填充 php 表单字段(点击),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492788/