-1

最初に を選択する必要があり、次に に基づいて がsource_type自動的に入力されますlocationsource_type

ファイルを閲覧する

    <select name="source_type" id="source_type">
       <option value="">Source Type</option>
       <option value="Internal">Internal</option>
       <option value="External">External</option>
    </select>

    <select name="location" id="location">
       <option value="">Select</option>
    </select>

    $('#source_type').change(function(){
        $.ajax({
            type: 'post',
            data: 'source_type'+$(this).val(),
            url: 'get_sources_location',
            success: function(data) {
                $('#source_location').val(data);
            }
        });
    });

..コントローラ

    public function get_sources_location()
    {
        $source_type = $this->input->post('source_type');

        $this->load->model('documents_model');
        $results = $this->documents_model->get_locations();
        echo $results;
    }

..モデル

    public function get_locations()
    {
     $query = $this
                ->db
                ->select('location')
                ->where('classification', $source_type = $this->input->post('source_type'))
                ->get('sources_location');

     $data = array();

     foreach ($query->result() as $row)
     {
         $data = $row->location;
     }
     return $data;
   }
4

3 に答える 3

2

このようなことを試してください

HTMLコード

<select name="source_type" id="source_type" onchange="populateLocation(this.value)">
   <option value="">Source Type</option>
   <option value="Internal">Internal</option>
   <option value="External">External</option>
</select>

<select name="location" id="location">
   <option value="">Select</option>
</select>

JQUERYを使用したJAVASCRIPTコード

function populateLocation(source_type_value){
            if(source_type_value !=''){
                /*
                    Pass your source type value to controller function which will return you json for your
                    loaction dropdown
                */
                var url = 'controller/function/'+ source_type_value; // 
                $.get(url, function(data) {
                 var $select = $('location');
                 // removing all previously filled option
                 $select.empty();
                 for (var propt in data) {
                        $select.append($('<option />', {
                            value: propt,
                            text: data[propt]
                        }));
                 }

            }
        }

コントローラーから返されるJSON FORMAT

{"":"Select","1":"New york","2":"London","3":"Mumbai"}
于 2013-02-25T06:52:13.337 に答える
1

このようにAJAX関数を入れて、

$("#source_type").change(function(){

  $.ajax({
     type : 'POST',
     data : 'source_id='+ $(this).val(),
     url : 'controller/method',
     success : function(data){
                 $('#location').val(data);
     }
 });
});

コントローラーに値を取得するメソッドを入れて、

public function getLocations() {

     $source_id = $this->input->post('source_id');

     // Call the model function and get all the locations based on the source type id

     // Populate the dropdown options here

     echo $result;
}
于 2013-02-25T06:46:24.180 に答える
0

最初の DD にイベント ハンドラーをアタッチchangeし、サーバーに ajax 呼び出しを送信してデータを取得します。ajax 呼び出しの成功のコールバックで、2 番目の DD を設定します。以下は、概念の簡単な証明です

$("#source_type").change(function(e)
{
    $.ajax({
        url:'/echo/json',
        success:function(data){
            console.log("success");
            $("<option/>",{text:'google',value:'google'}).appendTo("#location");
        }
    });

デモ

于 2013-02-25T06:42:55.487 に答える