-1

ユーザーが都市のリストから選択した都市の店舗の住所を取得したい。都市の表示には ajax を使用しています。

$('.cn').change(function(){
            $('.st1 option').remove();
            $('.st1').append("<option value=''>&ltSelect city&gt;</option>");
            var curr=$(this).val();
            $.get('includes/pages/getcity.php',{cnid:curr},function(resp){
                var obj = jQuery.parseJSON(resp);
                    $.each(obj, function() { 
                        $data="<option value='"+this.id +"'>"+ this.city +"</option>";
                        $('.st1').append($data);
                    });
            });
        });
State <select name="state_id" class="select cn state_textbox" >
            <option>---Select State--</option>
            <?php 
                            $query="select * from state";
                            $result=mysql_query($query);
                            while($row=mysql_fetch_assoc($result)){
                                if($row['state_id']==0){
                                    echo "<option value='".$row['id']."'>".$row['state']."</option>";
                                }
                                }
                        ?>

        </select> <br><br><br>
        City<select class="st1 state_textbox" name="st1" style="margin-left:35px" >
                <option selected="selected">-- Select your city --</option> 
            </select>
4

2 に答える 2

0

選択した項目を処理するイベントを選択ボックスに追加します。

<select name="state_id" class="select cn state_textbox" onchange="get_address(this.value);" >

あなたのjqueryスクリプトで:

    function get_address(state){  
        var post_url = "destination file to process the form";
            $.ajax({
                type: "POST",
                url: post_url,
                datatype: "json",
                success: function(data) 
                {
                    $('#address').val(data.address);
                }
            }); 
        }          
    });

確かに、正しいアドレスを読み取り、それをこの関数に返すために、クエリを実行する関数が必要になります! 多分このようなもの:(PHPコード)

function get_address($state){
    $q = "select address from tablename where state=?";
    $query_result=$this->db->query($q,$em_code);
    $address;
    if($query_resul->result()){
        foreach ($query_resull->result() as $output) {
            $address = $output->address;
        }
    return $address;
    } else {
        return FALSE;
    }
}
于 2013-03-28T09:47:55.927 に答える
0

あなたは変数を宣言するのを逃しました....

これを試して

$.each(obj, function(i,v) { 
     var $data="<option value='"+v.id +"'>"+ v.city +"</option>";
   //^^^----here; 
     $('.st1').append($data);
 });
于 2013-03-28T09:48:50.493 に答える