2012-05-27 30 views
0

我使用代碼點火器,我用代碼點火器窗體幫助程序做了一個窗體,我從我的數據庫加載2個下拉框與數據,並完美的作品。當我填補它的所有領域的作品。我目前有2個必填字段。其中1個不是必需的。當我填寫所有必填字段時,它可以工作,但是從我填寫一個必填字段的時候開始。它給出了這樣的錯誤:未定義的變量只有當我沒有填寫必填字段

A PHP Error was encountered 
Severity: Notice 
Message: Undefined variable: Cities 
Filename: admin/adddivelocation_view.php 
Line Number: 67 

就行號67的代碼是:

echo form_dropdown('duikplaats', $Cities, '', $attributes_dropdown_gemeente); 

我得到$城市這樣的觀點:

function addDiveLocation() 
    { 
     $data['Cities'] = $this->admin_model->getCity(); 
     $data['Countries'] = $this->admin_model->getCountries(); 
     $this->is_logged_in('admin/adddivelocation_view', $data); 
    } 

我的腳本,值或者2下拉菜單的屬性變化如下:

  $('#duikplaats').change(function(){ 
     var data = { 
      'id': $(this).val() 
     } 


     $.get(CI.base_url + "/admin/changeCountry", data, function(content){ 
      console.log(content); 
      $('#duikland option:selected').removeAttr('selected'); 
      $('#duikland option').filter(function(){ 
       return $(this).val() == content; 
      }).attr('selected', true); 
     }); 

    }); 

    //Wanneer Land gekozen word 
    $('#duikland').change(function(){ 
     var data = { 
      'id': $(this).val() 
     } 

     $.get(CI.base_url + '/admin/changeCity', data, function(content){ 
      $('#duikplaats').empty(); 
      var landen = $.parseJSON(content); 
      $.each(landen, function(k, v){ 
       $('#duikplaats').append(
        '<option value="' + k + '">'+ v + '</option>' 
        ); 
      }); 
     }); 
    }); 

和2 functies了jQuery的函數調用: changeCountry:

function changeCountry(){ 

     $query = $this->admin_model->getCountry($this->input->get('id')); 

     $this->output->set_output($query->FK_LandID); 

    } 

changeCity:

function changeCity(){ 
     $query = $this->admin_model->getCities($this->input->get('id')); 

     foreach($query as $object) 
     { 
     $data[$object->id] = $object->Gemeente; 
     } 

     $data = json_encode($data); 
     $this->output->set_output($data); 
    } 

回答

0

我找到了解決方案。當我發佈我的表單時,它會通過驗證功能,在成功發佈時加載成功視圖或在失敗時加載原始視圖。當它失敗時,它只加載視圖,但我忘記將任何數據返回到視圖,因此無法加載數據。

無論如何,謝謝!

0

該錯誤消息說,沒有定義$城市變量。我在發佈的代碼片段中也找不到$ Cities變量。

要麼你需要定義類似$ Cities = $ data ['Cities'];或者可以使$ data全局可用,因爲您在一個函數中定義它。從您的發佈代碼中不明顯。

第二個下拉菜單是否與$ Countries一起使用?

+0

我得到了同樣的問題,第二個下拉菜單與$ Countries一起工作。我通過這個函數將它從控制器傳遞給視圖:function addDiveLocation() {data}'data''='this-> admin_model-> getCity(); $ data ['Countries'] = $ this-> admin_model-> getCountries(); $ this-> is_logged_in('admin/adddivelocation_view',$ data); '你也使用代碼點火器嗎?順便說一句,is_logged_in(視圖,數據)只是一個函數,看看你是否登錄,如果是的話,用你的數據發送給你:$ this-> load-> view($ view,$ data);' –

+0

好的,你需要定義$ data public和一個數組。 class MyClass extends CI_Controller {0} {0} {0} public $ data = array(); – nullpointr

+0

爲什麼?我將它從控制器傳遞到視圖。你也使用代碼點火器? –