Onclick php更新查询

时间:2015-01-26 04:04:16

标签: php onclick updates

请帮助..我已经解决了这段代码的问题。我很困惑!我使用<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。

1 个答案:

答案 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是什么?!它是常数还是错误?