【问题标题】:some combobox reset each other after selected选择后某些组合框会相互重置
【发布时间】:2016-05-15 05:52:39
【问题描述】:

我有一些与onchange事件的组合框,它们在选择它们中的orther其中一个时它们会彼此重置,有任何建议如何在页面上保留值吗?这是我的脚本:

<form method="POST" name="form1" action="<?php $_SERVER['PHP_SELF'];?>">
    <table border="0">
        <tr>
            <td colspan="6"></td>
        </tr>
        <tr>
            <td>
                <select name="select_petugas1" style="width:18px;" onchange="this.form.submit('select_petugas1');"> //first combobox
                    <option></option>
                    <?php include 'dbconn.php';
                        $sql_peg1="SELECT * FROM users"; $result_peg1=$conn->query($sql_peg1);
                        while( $row_peg1=$result_peg1->fetch_assoc() ){ 
                            echo "<option>".$row_peg1['nama']."</option>";
                        }
                    ?>
                </select>
            </td>
            <td>

            <?php 
                if(isset($_POST['select_petugas1'])){
                    $select_petugas1=$_POST['select_petugas1'];
                    echo "<input type='text' name='select_petugas1' value='".$select_petugas1."'>"; // Throw 1st result into the text box
                    $sql_NIP1="SELECT NIP FROM users WHERE nama='$select_petugas1'";
                    $result_NIP1=$conn->query($sql_NIP1);
                    $row_NIP1=$result_NIP1->fetch_assoc();
                    $NIP1=$row_NIP1['NIP'];
            ?>
            </td>
            <td>&nbsp;NIP</td>
            <td>:</td>
            <td><input type="text" name='NIP1' value="<?php echo $NIP1; ?>"></td>
        </tr> <!-- child of first result -->
        <tr>
            <td colspan="5" bgcolor="blue"></td>
        </tr>
        <tr>
            <td>
                <select name="peg_2"  style="width:18px;" onchange="submit(this)"><!--2nd combobox-->
                    <option></option>
                <?php
                    $sql_peg2="SELECT nama FROM users";
                    $result_peg2=$conn->query( $sql_peg2 );
                    while ($row_peg2=$result_peg2->fetch_assoc()){
                        echo "<option value='".$row_peg2['nama']."'>".$row_peg2['nama']."</option>";
                    }
                ?>
                </select>
            </td>
            <td>
            <?php
                if( isset($_POST['peg_2']) ){
                    $peg_2=$_POST['peg_2'];
                    echo "<input type='text' name='peg2' value='".$peg_2."'>"; // 2nd result throw into 2nd texbox
                    $sql_NIP2="SELECT NIP FROM users WHERE nama='$peg_2'";
                    $result_NIP2=$conn->query($sql_NIP2);
                    $row_NIP2=$result_NIP2->fetch_assoc();
            ?>
                    </td>
                    <td>&nbsp;NIP</td>
                    <td>:</td>
                    <td><input type='text' name='NIP2' value="<?php echo $row_NIP2['NIP'];?>"> <!--2nd child of result-->
            <?php
                }
            }
            if(isset($_POST['NIP2'])){
                $NIP2=$_POST['NIP2'];
                echo "<br /> NIP2 :".$NIP2."<br />";
            }
            mysqli_close($conn);
            ?>
            </td>
        </tr>
    </table>
</form>

<form method="POST" name="wilayah" id="wilayah" action="<?php $_SERVER['PHP_SELF'];?>">
    <table border="1">
        <tr>
            <td>
                <select name="select_provinsi" onchange="submit(this)" style="width:18;">
                    <option selected>PROVINSI</option>
                    <?php 
                        include 'dbconn.php';
                        $sql_prov="SELECT * FROM wilayah GROUP BY provinsi";
                        $result_prov=$conn->query($sql_prov);
                        echo "";
                        while($row_prov=$result_prov->fetch_assoc()){
                            $provinsi=$row_prov['provinsi'];
                            echo "<option value='".$provinsi."'>".$provinsi."</option>";
                        }
                    ?>
                </select>
                <?php   
                    if(isset($_POST['select_provinsi'])){
                        $select_provinsi=$_POST['select_provinsi'];
                        echo "
                                <input type='text' name='select_provinsi' value='".$select_provinsi."' placeholder='PROVINSI'>
                            </td>
                        </tr>";


                        $sql_kabkota="SELECT * FROM wilayah WHERE provinsi='$select_provinsi' GROUP BY kab_kota";
                        $result_kabkota=$conn->query($sql_kabkota);
                ?>
            <tr>
                <td>
                    <select name="select_kabkota" style="width:18px;" onchange="submit(this)"><option>KAB/KOTA</option>
                    <?php
                        while($row_kabkota=$result_kabkota->fetch_assoc()){
                            echo "<option>".$row_kabkota['kab_kota']."</option>";
                        }
                    ?>
                    </select>
                    <?php
                    } 
                    if(isset($_POST['select_kabkota'])){
                        $select_kabkota=$_POST['select_kabkota'];
                    ?>
                        <input type="text" name="kab_kota" value="<?php echo $select_kabkota;?>">
                    <?php
                        }
                        mysqli_close($conn);
                    ?>
                </td>
            </tr>       
    </table>
</form>

希望有任何建议可以解决我与他们的问题,

【问题讨论】:

  • 将提交的值存储在会话变量中,并在呈现选择菜单时检查值 - 如果会话变量具有该选择菜单集的值,则为该选项“选择”

标签: php forms select input onchange


【解决方案1】:

onchange="submit(this)" 表示要在组合框的值发生变化时提交表单。因此,当发送表单时,页面会重新加载,您将获得表单的默认值。 要恢复选择的值,我会做类似的事情:

<select name="select_kabkota" style="width:18px;" onchange="submit(this)">  
<option>KAB/KOTA</option>
  <?php
  if(isset($_POST['select_kabkota']))
    $select_kabkota=$_POST['select_kabkota'];

  while($row_kabkota=$result_kabkota->fetch_assoc())
  {
    $selected = $select_kabkota == $row_kabkota['kab_kota'] ? 'selected="selected"' : '';
    echo "<option ".$selected." >".$row_kabkota['kab_kota']."</option>";
  }
?>
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多