使用mysql_fetch_array时发送表单while while CLOSED

时间:2016-05-25 15:12:05

标签: php jquery html forms

我有一个while循环,它遍历数据库的所有记录,在表格上打印它们。现在我在该循环中也有一些复选框,我想用它来点击时提交表单。现在,当我单击复选框时,它确实会提交表单,这要归功于我找到的Jquery脚本,但是每当我提交它时,它都会提交表格第一条记录的ID。This Image

显示该表,因为您看到第一个记录有ID 34.现在我点击的每个复选框都会发送$ id 34。

普通的提交按钮不会发生这种情况。

我是否可以通过个人用户ID

提交

while ($openResInfo = mysql_fetch_array($openResQuery))
            {
                $id = $openResInfo[0];
                $complete = $openResInfo[7];
            
            ?>
                    <form id='resComplete' action='dashboard_openReserveringen_PHP.php' method='GET'>
                        <?php
                        echo "<input type='hidden' name='userID' value='$id'>";
                        ?>                   
                        <input type="hidden" name="complete" value="0" >
                        <input id='complete' type='checkbox' name='complete' value='1' onchange='$("#resComplete").submit();' <?php if($complete == 1){echo "checked";}?>>
   
                    </form>

我很抱歉,如果我不清楚这个解释,很难解释这种情况。谢谢你们!

2 个答案:

答案 0 :(得分:0)

可能你的问题是你总是提交相同的表格,因为你为每一行创建一个表单,但它具有相同的id

对于你来说,简单的方法就是将每个表格的id放入行中的唯一值,然后提交。

像这样的东西

while ($openResInfo = mysql_fetch_array($openResQuery))
            {
                $id = $openResInfo[0];
                $complete = $openResInfo[7];

            ?>
                    <form id='resComplete_<?php echo $id; ?>' action='dashboard_openReserveringen_PHP.php' method='GET'>
                        <?php
                        echo "<input type='hidden' name='userID' value='$id'>";
                        ?>                   
                        <input type="hidden" name="complete" value="0" >
                        <input id='complete' type='checkbox' name='complete' value='1' onchange='$("#resComplete_<?php echo $id; ?>").submit();' <?php if($complete == 1){echo "checked";}?>>

                    </form>

答案 1 :(得分:0)

您的创建<form>看起来像是静态ID,因此所有表单都会有id='resComplete'。 jQuery提交函数将使用id='resComplete'获取第一个元素并提交它。您需要使每个表单都具有唯一性,并使onchange='$("#resComplete").submit();'代码与之匹配。

例如

<?php
while ($openResInfo = mysql_fetch_array($openResQuery))
            {
                $id = $openResInfo[0];
                $complete = $openResInfo[7];

            ?>
                    <form id='resComplete-<?php echo $id; ?>' action='dashboard_openReserveringen_PHP.php' method='GET'>
                        <?php
                        echo "<input type='hidden' name='userID' value='$id'>";
                        ?>                   
                        <input type="hidden" name="complete" value="0" >
                        <input id='complete' type='checkbox' name='complete' value='1' onchange='$("#resComplete-<?php echo $id; ?>").submit();' <?php if($complete == 1){echo "checked";}?>>

                    </form>

更好的是,使用jQuery通过将onchange变为类似的东西来找出它的形式:

<input id='complete' type='checkbox' name='complete' value='1' onchange='$(this).closest('form').submit();' <?php if($complete == 1){echo "checked";}?>>