如何连续创建提交表单并将输入与该行相关联?

时间:2013-04-29 14:35:15

标签: php mysql

嘿伙计们,我有一个问题要求你。

想象一下,我希望能够记录每周跑了多少里程,这样我就可以 将它与我每周设定的目标进行比较。所以我通过使用mysql_fetch_row创建了这个表。

$result=mysql_query("SELECT * FROM randomtable ORDER BY week ASC");

echo "<Table id='result' cellspacing='0'>
    <tr class='toprow'>
    <th>Week</th>
    <th>Goal</th>
    <th>Actual Number of Miles</th>
    </tr>";

while($row = mysql_fetch_row($result))
{
    echo "<tr class='standardrow'>";
    echo "<td>$row[0]</td>";
    echo "<td>$row[1]</td>";
    echo "<td><form><input method='post' type='number'></form></td>";
    echo "</tr>";
}

echo "</table>";

这段代码在10周内有10个目标的表格中得出 - 以及实际里程数的列。此列应包含10个输入表单,其中可以提交实际里程数。但是,如何将提交表单的输入与提交表单所在的行相关联? 主键是一周 - 所以这将是与之相关的一周。

希望你明白我的问题是什么:)

3 个答案:

答案 0 :(得分:1)

要执行此操作,您需要使用hidden input field

当您echo每一行以及该行中的表单时,您只需添加一行:

`<input type="hidden" name="row_id" value="' . $row['id_column'] . '" />';

完整的,您的代码将是:

$result=mysql_query("SELECT * FROM randomtable ORDER BY week ASC");

echo "<Table id='result' cellspacing='0'>
    <tr class='toprow'>
    <th>Week</th>
    <th>Goal</th>
    <th>Actual Number of Miles</th>
    </tr>";

while($row = mysql_fetch_row($result))
{
    echo "<tr class='standardrow'>";
    echo "<td>$row[0]</td>";
    echo "<td>$row[1]</td>";
    echo "<td>
            <form>
                <input method='post' type='number'>
                <input type='hidden' name='row_id' value='" . $row['id_column'] . "' />
            </form>
          </td>";
    echo "</tr>";
}

echo "</table>";

答案 1 :(得分:0)

我认为应该在循环中进行一些修改。

echo "<td><form  method='post'><input type='number' value='".$rows['col_name']."'><input type='submit' ></form></td>";

此代码为每一行添加一个提交按钮。但是,这不应该是我的想法。 应该是这样的,

echo "<form  method='post'> ";
while($row = mysql_fetch_row($result))
{
    echo "<tr class='standardrow'>";
    echo "<td>$row[0]</td>";
    echo "<td>$row[1]</td>";
    echo "<td><input type='number' value='".$rows['col_name']."'></td>";
    echo "</tr>";
}
echo "<input type='submit' ></form>";

答案 2 :(得分:0)

或者使输入字段看起来像这样。

'<input type="text" name="row['.$row['id_column'].'][miles]" />';

发布时会返回一个数组。

foreach($_POST['row'] as $key => $value){
// $key is your primary key
// $value['miles'] is your input value
}