2014-10-16 5 views
1

Я должен функционировать, когда одна функция является функцией call_back. Теперь я хочу получить значение (значение из переменной «$ iamge_location») в другую функцию. Я пытаюсь вернуть значение из функции обратного вызова и распечатать его в другой функции, из которой вызывается функция обратного вызова. но я не получил значение плз помощь ..Как получить значение от одной функции до другой функции?

Вот мой код контроллера:

function RoomImageAdd(){ 
     $this->form_validation->set_rules('roomImage', 'Upload Image', 'callback_upload_Image'); 

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

     if ($this->form_validation->run() == FALSE) { 
      $this->addRoomImage($roomid); 
     } 
     else { 
      echo $image_location; 
     } 
    } 

    function upload_Image(){ 

     if(!empty($_FILES['roomImage']['name'])) 
     { 
      $filename = date('YmdHis'); 

      $config['upload_path'] = 'assets/img/upload/rooms/'; 
      $config['allowed_types'] = 'jpg|jpeg'; 
      $config['file_name'] = $filename; 
      $config['max_size'] = '2000'; 
      $config['remove_spaces'] = true; 
      $config['overwrite'] = false; 

      $this->upload->initialize($config); 

      if (!$this->upload->do_upload('roomImage')) 
      { 
       $this->form_validation->set_message('upload_Image', $this->upload->display_errors('','')); 
       return FALSE; 
      } 
      else 
      { 
       $image_data = $this->upload->data(); 

       $image_location = 'assets/img/upload/rooms/'.$image_data['file_name']; 

       $config['image_library'] = 'gd2'; 
       $config['source_image'] = $image_data['full_path']; 
       $config['new_image'] = $image_data['file_path'].'room_thumb/'; 
       $config['maintain_ratio'] = FALSE; 
       $config['create_thumb'] = TRUE; 
       $config['thumb_marker'] = '_thumb'; 
       $config['width'] = 280; 
       $config['height'] = 280; 

       $this->image_lib->initialize($config); 

       if (!$this->image_lib->resize()) { 

        $error = array('error' => $this->image_lib->display_errors()); 

       } else { 

        $this->image_lib->resize(); 
       } 
       return $image_location; 
      } 
     } 
     else{ 
      $this->form_validation->set_message('upload_Image', "Unexpected Error! No File Selected!"); 
      return FALSE; 
     } 
    }  
+0

сделать переменным глобальным и использовать его. – shafiq

ответ

1

В контроллере вы должны быть в состоянии добавить поле переменной image_location, который вы можете установить в update_Image функции.

Изменить

return $image_location; 

в

$this->image_location = $image_location; 
return true; // because a boolean is expected off of a validation callback 

Теперь вы можете использовать $this->image_location для доступа к расположению в методе RoomImageAdd.

+0

отлично работает. Спасибо. –

Смежные вопросы