Форма кодигнита не отправляется - PullRequest
0 голосов
/ 27 мая 2010

Я использую библиотеку проверки формы codeigniter для проверки формы, ниже приведена логика в моем контроллере,

public function addJob()
{
    $this->load->model('jobwall');
    if($query = $this->jobwall->getjobTitles())
    {
        $data['select_options'] = $query;
    }
    $this->load->helper('form');
    $this->load->library('form_validation');
    $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
    $this->form_validation->set_rules('job_title', 'Job title', 'required|trim');
    $this->form_validation->set_rules('job_location', 'Job location', 'required|trim');
    $this->form_validation->set_rules('job_postcode', 'Job postcode', 'required|trim|min_length[5]|max_length[8]');
    $this->form_validation->set_rules('basic_salary', 'Basic Salary', 'required|trim');
    $this->form_validation->set_rules('bonuses_available', 'bonuses_available', 'required|trim');
    $this->form_validation->set_rules('benefits', 'Benefits', 'trim');
    $this->form_validation->set_rules('key_skills', 'Key skills', 'trim');
    $this->form_validation->set_rules('retrain_position', 'Retrain position', 'required|trim');
    $this->form_validation->set_rules('job_summary', 'Job summary', 'required|trim|max_length[320]');
    $this->form_validation->set_rules('job_desc', 'Job description', 'required|trim');
    if($this->form_validation->run() == FALSE)
    {
        //die(var_dump($_POST));
        $this->template->build('admin/jobwall/addjob', $data);
    } else {
        $this->load->model('jobwall');
        if($query = $this->jobwall->saveJobToWall()){
            $this->jobwall->makeRelationship();
            redirect('dashboard/jobwall');
        }
    }
    $this->template->build('admin/jobwall/addjob', $data);
}

Что бы я ни пытался, форма возвращает false, страница просто перезагружает форму (как указано в условии false), однако она должна возвращать false для проверки. Кто-нибудь может увидеть что-то не так в моих данных?

 array(11) {
  ["job_title"]=>
  string(1) "1"
  ["job_location"]=>
  string(12) "Huddersfield"
  ["job_postcode"]=>
  string(7) "HD3 4AG"
  ["basic_salary"]=>
  string(19) "£15,000 - £20,000"
  ["bonus_available"]=>
  string(3) "yes"
  ["benefits"]=>
  string(33) "Great job, working on great sites"
  ["key_skills"]=>
  string(14) "PHP, CSS, HTML"
  ["retrain_position"]=>
  string(3) "yes"
  ["job_summary"]=>
  string(228) "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s.o the leap into electronic typesetting, remaining essentially unchanged."
  ["job_desc"]=>
  string(743) "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. 

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged."
  ["submit_job"]=>
  string(10) "Submit job"
}

1 Ответ

0 голосов
/ 27 мая 2010

вы получаете какие-либо сообщения об ошибках? и почему вы используете $this->template->build('admin/jobwall/addjob', $data); дважды?

Я бы попытался добавить return; после функции перенаправления или удалить последнюю строку.

Давайте посмотрим:

// Step 1: check if everything is valid
// If not, it will build your template
if($this->form_validation->run() == FALSE)
{
    $this->template->build('admin/jobwall/addjob', $data);
}
// If yes...
else {
    $this->load->model('jobwall');
    if($query = $this->jobwall->saveJobToWall()){ // How do you handle your post here? Is it inside the model?
        $this->jobwall->makeRelationship();
        redirect('dashboard/jobwall');
        return; // to make sure that your code isn't running until the end of the fn
    }
}
// Step 2: You build the template for a 2nd time (if the validation did not pass), that could be a reason why your redirect isn't working, but i'm not sure
$this->template->build('admin/jobwall/addjob', $data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...