如何在发布请求后保留表单项。使用onchange

时间:2017-02-28 14:12:25

标签: php jquery ajax onchange dropdown

从第二个选择提交表单值时不显示我有问题。有人可以解释一下我做错了什么,因为在新的中(也许是因为我使用onchange事件)。提前谢谢。

的index.php

<?php 
include("includes/conn.php");

    $sql = "SELECT * FROM opstina";
    $result = $conn->query($sql);
    if($result->num_rows > 0){
        $opstineArr = array();
        while($row = $result->fetch_assoc()){
            $opstineArr[] = $row;
        }
    }

    if(isset($_POST["addNesto"])){

        $opstine = $_POST["opstine"];
        $ime = $_POST["ime"];

        if(isset($opstine)){
            if(empty($opstine)){
                $error["opstine"] = "izaberite opstinu";
            }
        }


        $naselja = $_POST["naselja"];
        if(isset($naselja)){
            if(empty($naselja)){
                $error["naselja"] = "izaberite naselje";
            }
        }


        if(isset($ime)){
            if(empty($ime)){
                $error["ime"] = "izaberite ime";
            }
        }

        if(count($error) == 0){
            echo 2222;
        }

    }


    include("includes/header.php");

?>

<form action="" method="POST">
    <select name="opstine" class="form-control" id="select_id" onchange="getNaselja(this.value)">
        <option>..Izaberite Opstinu..</option>
        <?php foreach($opstineArr as $key => $opstina): ?>
        <option value="<?php echo $opstina['OpstinaID']; ?>" <?php if(isset($opstine) && $opstine==$opstina['OpstinaID']) echo "selected"; ?> ><?php echo $opstina['NazivOpstine']; ?></option>
        <?php endforeach; ?>
    </select>
    <?php if(isset($error["opstine"])) echo $error["opstine"]; ?>

    <p>
        <select name='naselja' id='naseljeLista' class='form-control' style='margin-top:10px;'>
        </select>
        <span><?php if(isset($error["naselja"])) echo $error["naselja"]; ?></span>
    </p><br>

    <input type="text" name="ime" value="<?php if(isset($ime)) echo $ime; ?>" class="form-control col-md-7 col-xs-12"><?php if(isset($error["ime"])) echo $error["ime"]; ?><br><br>
    <input type="submit" name="addNesto" class="btn btn-sm btn-success">
</form>
<?php include("includes/footer.php"); ?>

getNaselja.php

global $conn;
include("includes/conn.php");

    if(!empty($_POST["opstina_id"])){

        $opstinaID = $_POST["opstina_id"];

        $sql1 = "SELECT * FROM naselje WHERE OpstinaID=".$opstinaID;
        $result1 = $conn->query($sql1);
        if($result1->num_rows > 0){
            $naseljaArr = array();
            while ($one = $result1->fetch_assoc()) {
                $naseljaArr[] = $one;
            }
        }

        echo "<option value=''>---Izaberite naselje---</option>";
        foreach ($naseljaArr as $key => $value) {
            if(isset($_POST["naselja"]) && $value["NaseljeID"]==$_POST["naselja"]){
                echo "<option value='".$value['NaseljeID']."' selected='selected' style='display:block;'>".$value['NazivNaselja']."</option>";
            }else{
                echo "<option value='".$value['NaseljeID']."'>".$value['NazivNaselja']."</option>";
            }
        }

    }

footer.php

<script>

        function getNaselja(val){

            $.ajax({
                type: 'POST',
                url: 'getNaselja.php',
                data: 'opstina_id='+val,
                success: function(data){
                    $('#naseljeLista').html(data);
                    console.log(data);
                }
            });

        }


    </script>

example of form after submit on index.php

当我从第一次选择时,在控制台上选择我的数据如下:

<option value=''>---Izaberite naselje---</option>
<option value='4610'>Beška</option>
<option value='4611'>Inđija</option>
<option value='4612'>Jarkovci</option>
<option value='4613'>Krčedin</option>
<option value='4614'>Ljukovo</option>
<option value='4615'>Maradik</option>
<option value='4616'>Novi Karlovci</option>
<option value='4617'>Novi Slankamen</option>
<option value='4618'>Slankamenački Vinogradi</option>
<option value='4619'>Stari Slankamen</option>
<option value='4620'>Čortanovci</option>

0 个答案:

没有答案