0

私は次のドロップダウンボックスを持っています:

ページ index.php

            <script type="text/javascript">

                $(document).ready(function() {

                $('#loader').hide();
                $('#show_heading').hide();

                $('#search_category_id').change(function(){
                    $('#show_sub_categories');
                    $('#loader').show();
                    $.post("get_chid_categories.php", {
                        kwdikos: $('#search_category_id').val(),
                    }, function(response){

                        setTimeout("finishAjax('show_sub_categories', '"+escape(response)+"')", 400);
                    });

                });
            });

            function finishAjax(mhnas_exodwn, response){
              $('#loader').hide();
              $('#show_heading').show();
              $('#'+mhnas_exodwn).html(unescape(response));
              $('#'+mhnas_exodwn).fadeIn();
            } 

            function alert_id()
            {
                if($('#sub_category_id').val() == '')
                alert('Please select a sub category.');
                else
                alert($('#sub_category_id').val());
                return false;
            }

            </script>
            <style>
            .both h4{ font-family:Arial, Helvetica, sans-serif; margin:0px; font-size:14px;}
            #search_category_id{ padding:3px; width:200px;}
            #sub_category_id{ padding:3px; width:100px;}
            .both{ float:left; margin:0 15px 0 0; padding:0px;}
            </style>
            </head>
            <?php
                    include('dbcon.php');?>
            <body>

            <div style="padding-left:30px;">
            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="form" method="post"  enctype="multipart/form-data">

                <div class="both">

                    <select name="search_category"  id="search_category_id">
                    <option value="" selected="selected">Πολυκατοικία</option>
                    <?php
                    $query = "SELECT DISTINCT polykatoikia,kwdikos FROM exoda ORDER BY polykatoikia ASC";
                    $results = mysql_query($query);

                    while ($rows = mysql_fetch_assoc(@$results))
                    {
                                    echo "<option ". (($_REQUEST['search_category'] == $rows["kwdikos"]) ? 'selected ' : '') ."value=\"".$rows["kwdikos"]."\">".$rows["polykatoikia"]."</option>";?>
            <!--            <option value="<?php echo $rows['kwdikos'];?>"><?php echo $rows['polykatoikia'];?></option>-->
                    <?php
                    }?>
                    </select>       
                </div>

                <div class="both">

                    <div id="show_sub_categories" align="center">
                        <img src="loader.gif" style="margin-top:8px; float:left" id="loader" alt="" />
                    </div>
                </div>
                       <?   echo "<p><input type = 'hidden' value=$rows[mhnas_exodwn] name='mhnas'</p>"; ?>
                <input type="submit" class="button small gray" name="" value="sumbit" />

            </form>
            </div>

get_chid_categories.php は次のとおりです。

        <?php

                include('dbcon.php');

        if($_REQUEST)
        {
                $id     = $_REQUEST['kwdikos'];

                $query = "select distinct kwdikos,mhnas_exodwn from 010_08_exoda where kwdikos= ".$id;
                $results = mysql_query( $query);?>

                <select name="sub_category"  id="sub_category_id">
                <option value="" selected="selected">Μήνας</option>
                <?php
                while ($rows = mysql_fetch_assoc(@$results))
                {
                <option value="<?php echo $rows['mhnas_exodwn'];?>"><?php echo $rows['mhnas_exodwn'];?></option>
                <?php
                }?>
                </select>   

        <?php   
        }
        ?>

ご覧のとおり、送信後に最初のコンボボックスの値を選択したままにできますが、2 番目のドロップダウン値を表示したままにするにはどうすればよいですか?

送信後、2 番目のドロップダウンが消えます。

ありがとう

4

1 に答える 1

0

次の 2 つのオプションがあります。

1) ユーザーがフォームを送信した後 - サーバー側を使用して POST ヘッダーの内容を分析する必要があります - またはフォームがGETを使用している場合は、クエリ文字列を解析する必要があります(これはjavascriptを使用して行うこともできます) 。

2) 「送信」アクションを使用せずに、Ajax 呼び出しを使用してフォームを検証します。この Ajax 呼び出しは、ユーザーが行ったエラーに基づいてエラー コードを返すことができ、それに応じてユーザー インターフェイスを更新できます。

2番目のオプションをお勧めします。ここに良い例があります

于 2013-05-02T07:37:36.170 に答える