簡體   English   中英

從控制器獲取Json數據

[英]Get Json data from controller

我需要在表單中創建動態選擇。 我已經編寫了這段代碼,以便從我的控制器(CodeIgniter)上從模型中獲取數據。

這是腳本:

<script type="text/javascript">
   $(document).ready(function(){
                    $("select#regione").change(function(){
                        $.getJSON("http://test:8888/ricerca/test",{id: $(this).val()}, function(dati){
                            var options = '';
                            for (var i = 0; i < dati.length; i++) {
                                options += '<option value="' + dati[i].valore + '">' + dati[i].etichetta + '</option>';
                            }
                            $("#provincia").html(options);
                            $('#provincia option:first').attr('selected', 'selected');
                        });
                    });
                });
            </script>

這是下拉表格:

<form action="base_url().'ricerca'" method="post">
<select name="regione" id="regione">
<option value="">No option</option>
<option value="Lombardia">Lombardia</option>
<option value="Lazio">Lazio</option>
</select>

<select name="provincia" id="provincia">
</select>
</form>

這是控制器:

class Ricerca extends CI_Controller
{
 public function test()
{
 $dati = array();
         array_push($dati,array("valore"=>"ciao", "etichetta"=>"ciao"));
         array_push($dati,array("valore"=>"mamma", "etichetta"=>"mamma"));
         return json_encode($dati);
}
}

在模型中進行查詢之前,我會先查看我的腳本是否有效,但是如果我在第一個選擇的“ Regione”中選擇了一個選項,則腳本不會執行任何操作

您必須從控制器功能回顯json數據而不返回數據

public function test()
{
 $dati = array();
         array_push($dati,array("valore"=>"ciao", "etichetta"=>"ciao"));
         array_push($dati,array("valore"=>"mamma", "etichetta"=>"mamma"));
         echo json_encode($dati);
}

或者你可以做

public function test()
    {
     $dati = array();
             array_push($dati,array("valore"=>"ciao", "etichetta"=>"ciao"));
             array_push($dati,array("valore"=>"mamma", "etichetta"=>"mamma"));
             $this->output
    ->set_content_type('application/json')
    ->set_output(json_encode($dati));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM