0

我已经打印了从数据库中获取的表格,如下所示 在此处输入图像描述 还有我的代码

print "<form id='form1' name='form1' method='post' action='http://localhost/live/index.php?m=sync&a=update'>";
while($db_field = mysql_fetch_assoc($result))
{
    print "<table border=1 width=100%>";
    print "<tr><td width=5%><input name='taskid' type='text' value=".$db_field['task_id']." readonly=readonly></td>";
    /*print "<td width=10%>".$db_field['task_name']."</td>";*/
    print "<td width=5%><input name='percent' type='text' value=".$db_field['task_percent_complete']." readonly=readonly></td>";
    print "</table>";
}
print "<input name='Sync' type='submit' value='Sync' id='Sync' />";
print "</form>";
mysql_close($db_handle); /*.$db_handle */ /*<---to check the resource link and id*/
}
else{
    print"Failed" ;//.$db_handle;

所以我想知道如何将数据库中的所有数据解析到另一个页面,就像我要发送的操作一样,因为现在当我单击下面的同步按钮时,我只能解析 1 个表中的 1 个数据是我的解析代码另一个页面 下图是解析代码 在此处输入图像描述

我不知道如何在新页面中显示所有数据...是否需要使用循环?我是新手,非常感谢

4

1 回答 1

2

根据以下评论进行编辑:

对于初学者,在第一个代码中,将print "<table border=1 width=100%>";andprint "</table>";部分移到while循环之外,因为该表作为两个单独的表生成了两次。

当前代码发生的情况是第二对字段taskidpercent覆盖第一个字段,因为名称相同,因此您只能在屏幕截图中看到第二对值。您需要将输入字段名称设为数组:[]在名称中放置方括号,以便taskidpercent自动成为$_POST. 这就是 HTML 源代码在表单中的样子:

<input name='taskid[]' type='text' ...>
<input name='percent[]' type='text' ...>

(或者像taskid_0,percent_0taskid_1,一样手动给它们下标percent_1;但是你必须决定何时停止循环或使用可变变量。)

之后,在您正在处理的目标页面中$_POST["taskid"],它将是一个数组,您可以访问它作为$_POST["taskid"][0],$_POST["percent"][0]$_POST["taskid"][1], $_POST["percent"][1]。因此,在更新数据库并生成第二个 html 时循环遍历:

print_r($_POST["taskid"]);  // verify that this is an array
print_r($_POST["percent"]); // also an array
$i=0;
foreach ($_POST["taskid"] as $t) {
    // not using $t, that's just for looping convenience
    // do sql insert/update here, i'm just showing how you'd loop the array
    print "<td><input type='text' name='".$_POST["taskid"][$i]."' readonly=readonly></td>";
    print "<td><input type='text' name='".$_POST["percent"][$i]."' readonly=readonly></td>";
    $i++;
}

希望有帮助。

一些提示: 1. 不要把你的代码的图像,只是粘贴代码。2. 生成的 HTML 复制粘贴(浏览器 -> 查看源代码)比页面图像更有用。


版本 1:
1.如果我理解正确,您想在一个页面上显示表单,当用户单击Sync( sumbit) 时,您希望它转到另一个处理表单的页面

使用元素(链接)的target属性。<form>像:

<form action="form_action.php" method="post">

或者,
2.如果您想先处理表单(同一页面)并将用户发送到另一个页面

于 2012-08-29T01:55:33.960 回答