2015-01-05 3 views
0

그래서 codeigniter의 form_submit에 문제가 있습니다. 나는 이름이 이메일 인 welcome이라는 컨트롤러를 가지고있다. Submit 버튼을 누를 때마다 페이지가 새로 고쳐 지지만 추가됩니다.? firstname = & 이메일 = & message = & submit = 내 URL에 제출하지만 그 방법은 수행하지 않습니다. 이것이 일어날 수있는 이유는 무엇입니까?form_submit codeigniter가 작동하지 않습니다.

아래 내 HTML 코드입니다.

     <form role="form"> 
         <div class="form-group"> 
          <label>Name</label> 

          <?php $this->load->helper("form"); ?> 
          <?php echo validation_errors('<p class = "error">'); ?> 
          <?php echo form_open('welcome/email'); 

          $data = array('type'=>'text','class'=>'form-control',  'name'=>'firstname'); 
          echo form_input($data); 
          ?> 
         </div> 
         <div class="form-group"> 
          <label>Email</label> 
          <?php 
          $data = array('type'=>'email','class'=>'form-control', 'name'=>'email'); 
          echo form_input($data); 
          ?> 
         </div> 
         <div class="form-group"> 
          <label>Message</label> 
          <?php 
          $data= array('type'=>'text','name'=>'message','class'=>'form-control','rows'=>7); 
          echo form_textarea($data); 
          ?> 
         </div> 
         <div class="pull-right"> 



         <!--<button type="submit" class="btn btn-custom btn-lg" action="welcome/email">Submit</button> --> 
         <?php 

         echo form_submit('submit','Submit'); 
         echo form_close(); 
         ?> 
         </div> 

내 컨트롤러 그래서 여기

if ($this->form_validation->run()==FALSE){ 
     $this->load->view('message not sent'); 

    } 

넣어 올바른 뷰 이름이

$this->load->helper("form"); 

'을 보내지 않은 메시지가'로드 말한다 곳

<?php /*if (! defined('BASEPATH')) exit('No direct script access allowed');*/ 

    class Welcome extends CI_Controller { 



    function index(){ 
     $this->load->view('index-sidebar'); 

    } 


    function email(){ 

     $this->load->library('form_validation'); 


     $this->form_validation->set_rules('email', 'Email Address','required|valid_email'); 
     $this->form_validation->set_rules('firstname', 'Name', 'required|min_length[2]|max_length[30]'); 
     $this->form_validation->set_rules('message', 'Message', 'required|min_length[5]|max_length[200]'); 

     if ($this->form_validation->run()==FALSE){ 
      $this->load->view('message not sent'); 

     } 

     else{ 
      $this->load->library('email'); 

      $this->email->from(set_value('email'),set_value('name')); 
      $this->email->to("[email protected]"); 
      $this->email->subject('tutoring'); 
      $this->email->message(set_value('message')); 


      $this->email->send(); 

      echo $this->email->print_debugger(); 
      $this->load->view('success'); 
     } 


    } 
} 

답변

0

당신의 컨트롤러의 도우미 - 더 좋습니다. 이 설정/자동로드

할 양식이

$data = array('type'=>'text','class'=>'form-control','name'=>'firstname'); 
echo form_input($data); 

당신은 반복 $에게 데이터를 반복합니다. 기술적으로는 작동하지만 그래서 그들에게 다른 이름

$first = array('type'=>'text','class'=>'form-control','name'=>'firstname'); 
echo form_input($first); 

을 어떤 시점에서 난장판에 가서 당신이 유효성 검사가 거짓이면 다시 형태로 값을 표시하기 위해 뭔가를해야합니다. 체크 아웃 http://www.codeigniter.com/user_guide/libraries/form_validation.html#repopulatingform

+0

감사를보십시오. 나는 그것이

을 html 형식으로 선언하고 form_open을 선언했기 때문에 그것이 발견되었습니다. 그래서 양식을 두 번 열어 첫 번째 행동을 선언하지 않았습니다. 답변 주셔서 대단히 감사합니다. 대단히 감사합니다. 양식이 이미 자동으로로드되었습니다. 나는 당신의 충고를 받아들이고 각 $ 데이터 이름을 자신의 것으로 변경했습니다. – user3630439

1

양식 태그에 조치 매개 변수가 없습니다. 양식을 제출합니까?

<form action="<?= base_url().'welcome/email'?>" role="form" method="post"> 
+0

감사합니다. 나는 그것이 을 html 형식으로 선언하고 form_open을 선언했기 때문에 그것이 발견되었습니다. 그래서 양식을 두 번 열어 첫 번째 행동을 선언하지 않았습니다. 무리 감사. – user3630439

관련 문제