Пожалуйста, помогите .. У меня проблемы с этим кодом. Я запутался! Я использую <form> <input type="submit">
, Идентификатор идентифицируется, однако, если я нажимаю на тот, который будет отправлен, другой идентификатор появился. Пожалуйста помоги! Заранее спасибо.
<?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>
Редакция:
Прошу прещения за это. Я глубоко извиняюсь. О вопросе, когда я нажимаю кнопку ENCODE как отправить. Вместо dvlbid, который я нажимаю, выбирается другой. Это делает клик dvlbid не тот, который я нажимаю. Похоже, что он выберет 2-й dvlbid вместо 1-го.
Вам нужно создать 1 форму для каждого 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: Что это такое XXX
на 4-й линии ?! Это константа или ошибка?
Других решений пока нет …