2010-07-05 2 views
0

У меня есть забавная работа с моей локальной установкой dev. Использование codeigniter У меня есть форма, которая должна имитировать сохранение некоторой информации от пользователя в базе данных. На данный момент у меня нет настройки базы данных, но я просто хочу, чтобы форма отправила меня на страницу успеха, когда проверка завершена. Но когда я отправляю форму, она возвращается и сообщает мне, что поле имени пустое, и я никогда не получаю страницу успеха. Я что-то пропустил? пожалуйста, посмотрите это и скажите мне, если я что-то упустил! Это функция в контроллере, обрабатывающая форму.Класс проверки формы Codeigniter

function showsupport() 
{ 
    $this->form_validation->set_rules('supportername','Name','trim|required|max_length[30]'); 
    $this->form_validation->set_rules('supporteremail','Email Address','trim|required|valid_email'); 
    $this->form_validation->set_rules('pledgedate','Pledge Date','trim|required'); 
    $this->form_validation->set_rules('messagetxt','Your Message','trim|required|xss_clean'); 

    if($this->form_validation->run() == FALSE) 
    { 
     $this->template->write_view('content','supportus'); 
     $this->template->render(); 
    } else { 
     $this->template->write('content','Your submission was a success'); 
     $this->template->render(); 
    } 
} 


<div id="supportform" class="formblock"> 

       <?php 
        $formdata = array('id'=>'suppform'); 
         echo form_open('homepage/showsupport',$formdata); 
        $namedata = array('name'=>'supportname','id'=>'supportname','size'=>'30','max_length'=>'25'); 
        echo '<label for="supportername">Your Name:'.form_input($namedata,set_value('supportname')).'</label><br /><br />'; 
        $emaildata = array('name'=>'supporteremail','id'=>'supporteremail','size'=>'30','max_lenth'=>'25'); 
        echo '<label for="supporteremail">Email Address:'.form_input($emaildata,set_value('suppoteremail')).'</label><br /><br />'; 
        $pledgedata = array('name'=>'pledgedate','id'=>'pledgedate','size'=>'30','max_length'=>'20'); 
        echo '<label for="pledgedate">Today\'s Date:'.form_input($pledgedata,set_value('pledgedate')).'</label><br /><br />'; 
        $msgdata = array('name'=>'messagetxt','id'=>'messagetxt','col'=>'2','rows'=>'8'); 
        echo '<label for="messagetext">Your Pledge:'.form_textarea($msgdata).'</label><br />'; 
        $submitdata = array('name'=>'submitbtn','id'=>'submitbtn','value'=>'Send'); 
        echo '<label for="submitbutton">'.form_submit($submitdata).'</label><br />'; 
        echo form_close(); 
       ?> 
      </div> 
     <div id="errorsechoed"> 
      <div class="ui-widget"> 
     <div class="ui-state-error ui-corner-all" style="padding: 0 .7em; border: none;">       
         <?php echo validation_errors('<p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>');?> 

это форма, которую он сам. Я должен сделать презентацию через несколько часов, и эта форма работы является ключевой. Спасибо за помощь.

E

ответ

2

Существует вписывает имя из-за несогласованности ваших правил проверки формы и вид элемента HTML.

Правило проверки

$this->form_validation->set_rules('supportername','Name','trim|required|max_length[30]'); 

HTML-

$namedata = array('name'=>'supportname','id'=>'supportname','size'=>'30','max_length'=>'25'); 
echo '<label for="supportername">Your Name:'.form_input($namedata,set_value('supportname')).'</label><br /><br />'; 

Либо изменить имя правила проверки на 'supportname'

Или

Измените имя 'name' => 'supportname' на 'name' => 'supportername'

+0

Спасибо, человек, слишком много кофе! благодаря –

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