如何将1个表中的所有数据解析到另一个页面?

时间:2012-08-29 01:36:38

标签: php mysql forms post

我已经从下面的数据库中打印了表格 enter image description here 我的代码

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个数据,当我点击下面的同步按钮是我的在另一个页面中解析代码 下图是解析代码 enter image description here

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

1 个答案:

答案 0 :(得分:2)

根据以下评论进行编辑:

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

当前代码发生的情况是,第二对字段taskidpercent会覆盖第一对字段,因为名称相同,因此您只能看到second pair of values屏幕截图。您需要使输入字段名称为数组:在名称中放置方括号[],以便taskidpercent自动在{{1}中进行数组排列}。这就是HTML源代码在表单中的样子:

$_POST

(或者手动将它们下标为<input name='taskid[]' type='text' ...> <input name='percent[]' type='text' ...> taskid_0percent_0taskid_1;但是您必须决定何时停止循环或使用变量变量。)

之后,在您正在处理percent_1的目标网页中,它将是一个数组,您可以$_POST["taskid"]$_POST["taskid"][0]$_POST["percent"][0],{{ 1}}。因此,在更新数据库并生成第二个html时循环执行:

$_POST["taskid"][1]

希望有所帮助。

一些指示:1。不要放置代码图片,只需粘贴代码即可。 2.生成的HTML复制粘贴(浏览器 - &gt;视图源)比页面图像更有用。


版本1:
1。如果我理解正确,您希望在一个页面上显示该表单,并且当用户点击您想要的$_POST["percent"][1]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++; } )时它要转到另一个处理表单的页面

使用target attribute of the <form> element(链接)。像:

Sync

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