请帮助..我已经解决了这段代码的问题。我很困惑!我使用<form> <input type="submit">
。然后识别该ID,但是如果我单击要提交的ID,则出现另一个ID。请帮忙!提前谢谢。
<?php
if(isset($_POST['ADD'])){
$dvlbid=$_POST['dvlbid'];
$docstate=XXX;
$query="UPDATE dvlog set docstate='$docstate' where dvlbid='$dvlbid'";
$result=mysql_query($query);
header("Location: ../../modules/dv/add_dv.php?dvlbid=$dvlbid");
}
?>
<form name="form" method="post">
<table class="dvr_table" id="indextable" border="1" style="border-collapse:collapse;" >
<thead>
<tr bgcolor='#666666' style='color:#FFFFFF'>
<th><a href="javascript:SortTable(0,'T');">Book Code No.</a></th>
<th><a href="javascript:SortTable(2,'N');">Amount</a></th>
<th>OPTION</th>
</tr>
</thead>
<tbody>
<?php
include('../../includes/ps_pagination.php');
$sql = "SELECT *,dvlbid,docstate FROM dvlog WHERE docstate = 'FOR_ENCODING' ";
$pager = new PS_Pagination($conn, $sql, 20, 5);
$rs = $pager->paginate();
if (!$rs) { die("" . mysql_error()); }
while($row = mysql_fetch_array($rs))
{
?>
<tr bgcolor='#ffffff' />
<td>
<?php echo $row["logbooktype"];?>-
<?php echo $row["imonth"];?><?php echo $row["iday"];?>-
<?php echo $row["logbookno"];?>
</td>
<td align="right"><?php echo number_format($row["amount"],2);?></td>
<td>
<input type="hidden" name="dvlbid" value="<?php echo $row["dvlbid"];?>">
<input type="submit" name="ADD" value="ENCODE" />
</td>
</tr>
<?php $color="1"; } ?>
</tbody>
<tr>
<td colspan="23" align="center">
<?php
echo '<div class="pager" >'.$pager->renderFullNav().'</div>';
?>
</td>
</tr></table>
</form>
EDITED: 对不起。我深表歉意。关于我单击ENCODE按钮作为提交的问题。相反,dvlbid我点击另一个正在被选中。它使点击dvlbid不是我点击的那个。它似乎会选择第二个dvlbid而不是第一个dvlbid。
答案 0 :(得分:0)
您需要为每个tr
创建一个表单。您正在以相同的形式生成许多dvlbid
值的方式,并且浏览器无法知道您提交的内容。我重写了你的代码,为每个tr
创建了一个表单,我相信它会起作用(虽然我不太了解你的问题):
<?php
if(isset($_POST['ADD'])){
$dvlbid=$_POST['dvlbid'];
$docstate=XXX;
$query="UPDATE dvlog set docstate='$docstate' where dvlbid='$dvlbid'";
$result=mysql_query($query);
header("Location: ../../modules/dv/add_dv.php?dvlbid=$dvlbid");
}
?>
<table class="dvr_table" id="indextable" border="1" style="border-collapse:collapse;" >
<thead>
<tr bgcolor='#666666' style='color:#FFFFFF'>
<th><a href="javascript:SortTable(0,'T');">Book Code No.</a></th>
<th><a href="javascript:SortTable(2,'N');">Amount</a></th>
<th>OPTION</th>
</tr>
</thead>
<tbody>
<?php
include('../../includes/ps_pagination.php');
$sql = "SELECT *,dvlbid,docstate FROM dvlog WHERE docstate = 'FOR_ENCODING' ";
$pager = new PS_Pagination($conn, $sql, 20, 5);
$rs = $pager->paginate();
if (!$rs) { die("" . mysql_error()); }
while($row = mysql_fetch_array($rs))
{
?>
<tr bgcolor='#ffffff' />
<form name="form" method="post">
<td>
<?php echo $row["logbooktype"];?>-
<?php echo $row["imonth"];?><?php echo $row["iday"];?>-
<?php echo $row["logbookno"];?>
</td>
<td align="right"><?php echo number_format($row["amount"],2);?></td>
<td>
<input type="hidden" name="dvlbid" value="<?php echo $row["dvlbid"];?>">
<input type="submit" name="ADD" value="ENCODE" />
</td>
</form>
</tr>
<?php $color="1"; } ?>
</tbody>
<tr>
<td colspan="23" align="center">
<?php
echo '<div class="pager" >'.$pager->renderFullNav().'</div>';
?>
</td>
</tr></table>
PS: 如果您遇到语法错误,或者页面空白,我真的不明白您的问题,或者如果它的行为与预期的不同。我在这里做了一个盲目猜测。
PS II: 第4行的XXX
是什么?!它是常数还是错误?