2012-05-27 28 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

为什么?我将它从控制器传递到视图。你也使用代码点火器? –