나는이 코드에 너무 많은 시간을 할애하여 코드 블라인드에 빠졌다고 생각합니다. 폼 유효성 검사는 실행 중에 항상 FALSE를 반환하고 이유를 파악할 수 없습니다.Codeigniter 폼 유효성 검사는 항상 false를 반환합니다.
new_map() 함수는 양식 제출시 (물론 map_name 필드에 값이 설정된 경우) 양식을 먼저 표시하고 양식 유효성 검증 실행은 false를 리턴하지만 오류가 표시되지 않고 양식이 재설정됩니다. 나는 무엇이 없는가 ??
컨트롤러 :
public function new_map()
{
$data['extra_assets']['js'][] = 'app/admin/maps.js';
$data['title'] = 'Add Map';
$this->form_validation->set_rules('map_name', 'Map name', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load_admin_view('admin/ae_map', $data);
}
else
{
$this->load->model('maps_model');
echo 'inside true';exit;
// Upload map
if ($this->maps_model->upload_map())
{
redirect(site_url('admin/maps'));
}
}
}
모델 :
public function upload_map()
{
$config['upload_path'] = root_path() . 'space/maps/';
$config['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);
$map_name = $this->input->post('map_name');
if (! $this->upload->do_upload('map_file'))
{
$error = array('error' => $this->upload->display_errors());
echo $this->upload->display_errors();exit;
return FALSE;
}
else
{
$data = array('upload_data' => $this->upload->data());
// Insert map into database
$options = array(
'm_file' => $data['upload_data']['file_name'],
'm_name' => $map_name
);
$this->insert_map($options);
// Create a thumbnail of this map
$this->generate_map_thumb($data['upload_data']['file_name']);
}
return TRUE;
}
보기 :
<div class="modalContent" style="width: 300px; height: 250px;">
<h1><?php echo $title; ?></h1>
<?php echo validation_errors(); ?>
<div id="MAP_FORM" class="formListing">
<?php echo form_open_multipart('admin/new_map'); ?>
<ul>
<li>
<div><label>File: </label></div>
<div><span><input type="file" id="MAP_FILE" name="map_file" /></span></div>
</li>
<li>
<div><label>Name: </label></div>
<div><span><input type="text" id="MAP_NAME" name="map_name" value="" /></span></div>
</li>
</ul>
<br />
<input type="submit" value="Submit" id="SUBMIT_MAP" name="submit_map" />
<?php echo form_close(); ?>
</div>
모델에서 유효성 검사가 왜 발생합니까? 제어기에 있어야합니다. 그러나 어쨌든, 실제로 일어나고있는 일을 살펴 보겠습니다. 또한 모델에 리디렉션 문이있는 이유는 무엇입니까? 이 문장은 컨트롤러의 일부입니다. – Aniket
컨트롤러에 또 다른'new_map' 함수가 없다면 모델과 컨트롤러 코드가 틀린 방향으로 라벨이 붙어있을 것이라고 추측합니다. – jleft
죄송합니다. 실제로 그들은 다른 방향으로 분류되었습니다. 나는 라벨을 즉시 바꿀 것이다. – PoloRM