通过Javascript中的行号访问表的元素?

时间:2011-12-06 04:19:06

标签: javascript php mysql html-table

我有一个PHP脚本,它生成带有隐藏输入标记的表行,其名称类似于title1,title2等,price1,price2等。用户可以根据需要删除和添加行。我的问题是,当我提交行时,如何通过PHP或Javascript按顺序读取这些隐藏的输入?

编辑:对于缺乏细节感到抱歉。这是一些代码:

生成行的PHP

$result = mysql_query("SELECT * FROM `table`");
$i=0;
while ($list = mysql_fetch_array($result))
{
$i++;
$title = $list['title'];
$price = $list['price'];
$plu = $list['plu'];

?>

<tr id="row<?php echo $i; ?>"><td><input type="hidden" name="title<?php echo $i; ?>"     value="<?php echo $title; ?>"></td></tr>
<tr><td><input type="hidden" name="price<?php echo $i; ?>" value="<?php echo $price; ?>"></td></tr>
<tr><td><input type="hidden" name="plu<?php echo $i; ?>" value="<?php echo $plu; ?>">        </td></tr>

<?php
}
?>

现在,如果用户可以删除行,我知道我可以确切地知道有多少行,但是到了时候阅读它们并保存它们以便我丢失。

2 个答案:

答案 0 :(得分:2)

我不确定您是否可以保证根据页面上的位置按顺序排列它们,但由于您可以自己命名这些元素,因此可以将它们命名为title[1]title[2] ,. ..

例如:

<input type="hidden" name="title[1]" value="foo">
...
<input type="hidden" name="title[2]" value="bar">

这将允许您通过以下方式访问PHP中提交的元素:

$_POST['title'][1], $_POST['title'][2], etc.

答案 1 :(得分:0)

你只能使用一个或两个(用于标题和价格)隐藏输入而不是每个值的单独输入...你需要做的就是使用一些特殊字符,如';','#'作为分隔符来分隔每个值..当用户删除行时,只需从整个字符串中删除该值....您可以使用javascript轻松完成..

所以最终你只需要提交一个(或两个)隐藏值......