2013-07-06 3 views
0

Я написал небольшую часть, чтобы получить значение из таблицы базы данных в соответствии с предоставленным пользователем пользователем. Быстро здесь события:CodeIgniter Получение результата запроса как текстового значения ввода

  1. Пользователь вводит номер на вход и отправить форму
  2. Эти данные должны вызвать контроллер, а затем контроллер должны соответствовать и захватить соответствующие данные из таблицы базы данных, и снова передайте его контроллеру.
  3. Затем контроллер должен передать его в представление, где другой ввод текста (только для чтения) подбирает данные в качестве значения.

Но то, что я получил ошибка:

Сообщение: Undefined переменной: due_amount Имя файла: главная/new_payment.php Порядковый номер: 148

Номер линии 148 в new_payment.php является

); 

на вид.

Это мой Модель:

function get_by_room_number($room_data) {  
    $this->db->select('due_amount'); 
    $query = $this->db->get_where('rooms', array('room_number' => $room_data), 1); 

    if($query->num_rows()>0) { 
     foreach ($query->result() as $row) { 
      return $row->due_amount; 
     } 
    } 

Это контроллер:

function search_by_number() { 
    $room_data = $this->input->post('room_number'); 
    $due_amount = $this->payments_model->get_by_room_number($room_data); 
    $this->index(); 
} 

Это View: (new_payment.php)

<?php echo form_open('payments/search_by_number'); ?>  
<?php $data = array(
    'name' => 'total_amount', 
    'id' => 'appendedPrependedInput', 
    'class' => 'span2', 
    'value' => $due_amount 
    ); // Line Number 148 
echo form_input($data); 
?> 

<?php echo form_close(); ?> 

ответ

1

Попробуйте как

$data['due_amount'] = $this->payments_model->get_by_room_number($room_data); 

и попытаться послал его, чтобы посмотреть, как

$this->load->view('view_file',$data); 

и в файле вида эхо его, как

echo $due_amount; 

при условии, что $data является массив, который вы передаете к вашему представлению от вашей функции контроллера. Вы передаете переменную из контроллера для просмотра. Вам нужно передать ее через данные массива, а затем вы можете получить переменную с этим v допустимое имя

+0

Это сработало. Благодаря! :) –

1

Вы должны назначить due_amount переменной $data и передать его для просмотра. Как это:

$data['room_data'] = $this->input->post('room_number'); 
$data['due_amount'] = $this->payments_model->get_by_room_number($data['room_data']); 
$this->load->view('my_view', $data); 

Тогда в силу вы могли бы сделать:

print_r($room_data); 
print_r($due_amount); 

CodeIgniter User Guide может помочь вам лучше понять его.

+0

Ты абсолютно прав. Я испортил его там. Благодаря! :) –

+0

Удачи вам в вашем проекте. –

+0

Еще раз спасибо, человек! –

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