onclick php 更新查询

Onclick php update query

请帮忙..我在使用这段代码时遇到了一些麻烦。我糊涂了!我用的是<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>

已编辑: 对不起。我深表歉意。关于当我点击 ENCODE 按钮提交时的问题。相反,我点击另一个的 dvlbid 正在 selected。它使点击 dvlbid 不是我点击的那个。看来它将 select 第二个 dvlbid 而不是第一个。

您需要为每个 tr 创建 1 个表单。您这样做的方式是为同一表单生成许多 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二:第4行那个XXX是什么?!它是常量还是错误?