作者BoxsterX ()
看板PHP
标题[讨论] 用POST传递的array的值永远是最後一项..
时间Tue Aug 21 14:33:14 2012
用for把SQL里的资料列出来并在後面加上一个按钮传递值
code如下(只列出重点)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Snapshot List</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?php
$link = mysql_connect("127.0.0.1", "root", "1234") or die("Could not
connect : " . mysql_error());
mysql_select_db("FT_info") or die("Could not select database");
$query="Select * from list";
$result = mysql_query($query) or die("Query failed : " .
mysql_error());
$alumni_id=$line['serialno'];
mysql_close($link);
?>
<form action="
http://127.0.0.1/site/tag.php"
method="POST">
<?php
for ($i=0;$line = mysql_fetch_assoc($result);$i++)
{
$tag[$i] = $line["Tag"];
echo "<td>".'<input type="hidden" name="Tag" value='.$tag[$i].'><input
type="submit" value='."$tag[$i]".'>'."</td>\n";
}
?>
while版
<?php
while ($line = mysql_fetch_assoc($result))
{
echo "<td>".'<input type="hidden" name="Tag" value='. $line["Tag"];.'><input
type="submit" value='. $line["Tag"].'>'."</td>\n";
}
?>
</form>
</body>
</html>
tag.php code如下
<?php
echo "debug msg: ";
echo $_POST["Tag"];
?>
按钮显示的值是正常的
但不管按哪个button送出去的值一直都是array的最後一个值
请求各位帮忙
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.191.133
1F:→ kerash:$line = mysql_fetch_assoc($result) ???? 08/21 14:47
2F:→ kerash:你是要用 mysql_num_rows 吗? 08/21 14:47
3F:→ BoxsterX:是的 08/21 14:48
4F:→ kerash:何不用 while($line=mysql_fetch_assoc()) ? 08/21 14:57
5F:→ BoxsterX:有试过用while但结果一样 08/21 14:59
6F:推 kerash:你改成while後再贴一次程式码,程式段落都要贴 08/21 15:00
7F:→ kerash:另外用原始码看你产生出来的 input 值是否正确 08/21 15:00
※ 编辑: BoxsterX 来自: 1.162.191.133 (08/21 15:09)
8F:→ BoxsterX:刚试过while了结果还是一样 08/21 15:10
9F:→ kerash:我看出来了 ... 你的NAME怎麽都一样... 08/21 15:26
10F:→ kerash:要买成name=Tag[] 才会把所有结果一次以阵列方式送出.. 08/21 15:26
11F:→ BoxsterX:感谢@@ 但我只要传出按钮的那一栏值 08/21 15:30
12F:→ kerash:那你应该不需要 hidden 啊,你直接把 submit 给 name 就好 08/21 15:42
13F:→ kerash:传过去就会是按下去的那个 name 的 value 08/21 15:42
14F:→ BoxsterX:目前都OK了 另外问一下 要怎麽做才能一个button传多个值 08/21 16:53
15F:→ kerash:如你这样做就行了,但是送出的 submit只要一个,其他都是 08/21 16:59
16F:→ kerash:放在 input 里面,再传过去另一页接收 08/21 17:00
name後面有括号 用 print_R($_POST) 接收会变成print出所有我在DB里的东西
name後面没括号
用'<input type="hidden" name="re_snapshotTag"value='.$line["snapshotTag"].'>
接收:echo $_POST["re_snapshotTag"]; 在单一input是可以正确的print出我在
button上的值
但用了多个input会回到我最一开的问题他只会print出array最後的值
所以我想请问能不能用一个button送出多个值并print出正确的值
code:
echo "<td>".'<input type="hidden" name="re_snapshotTag[]"
value='.$line["snapshotTag"].'>
<input type="hidden" name="count[]" value='.$i.'>
<input type="hidden" name="re_imagePath[]" value='.$line["imagePath"].'>
<input type="submit" value="Restore"> '."</td>\n";
※ 编辑: BoxsterX 来自: 36.228.19.164 (08/21 18:08)