2017-02-10 2 views
0

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

Вот мое мнение:

<form action="" id="form" method="post" > 

    <div class="form-group"> 

    <div class="form-group"> 
     <label>Select</label> 
     <select class="form-control" name="selection"> 
     <option>Telephonic</option> 
     <option>F2F</option> 
     <option>HR</option> 
     </select> 
    </div> 

    <div class="box-body pad"> 
     <label>Comments</label> 
     <textarea class="textarea" name="comments" id="Comments "placeholder="Place comments here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea> 
    </div> 

    <div class="box-body pad"> 
     <label>Results</label> 
     <textarea class="textarea" name="results" placeholder="Place results here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea> 
    </div> 

    <div class="form-group"> 
     <label> 
     <input type="radio" name="selection_process" value="1" class="flat-red" checked>Selected 
     </label> 

     <label> 
     <input type="radio" name="selection_process" value="2" class="flat-red">Not Selected 
     </label> 
    </div> 

    <div class="row"> 
     <div class="col-xs-8"> 
     <div class="checkbox icheck"> 

     </div> 
     </div> 

     <div class="col-xs-4"> 
     <button type="submit" name="submit" id="submit"class="btn btn-primary btn-block btn-flat">Submit</button> 
     </div> 
    </div> 

    </div> 

</form> 

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

<?php 
public function add_selection() 
{ 
    $data=array(
    'selection'=>$this->input->post('selection'), 
    'comments'=>$this->input->post('comments'), 
    'results'=>$this->input->post('results'), 
    'selection_process'=>$this->input->post('selection_process') 
    ); 

    if($data['selection_process']==1) 
    { 
    $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://md-in-42.webhostbox.net', 
     'smtp_port' => 465, 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'test3' 
    ); 
    $this->load->library('email',$config); 
    $this->email->set_mailtype("html"); 
    $this->email->from('[email protected]', 'bharathi'); 
    $list=array('[email protected]','[email protected]'); 
    $this->email->to($list); 
    $this->email->subject('YOU ARE SELECTED'); 
    $link = 'Click on this link - <a href="http://localhost/job_portal/index.php/Login/signin">Click Here</a>'; 
    $this->email->message($link); 
    $this->email->send(); 
    } 
    else 
    { 
    $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://md-in-42.webhostbox.net', 
     'smtp_port' => 465, 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'test3' 
    ); 
    $this->load->library('email',$config); 
    $this->email->set_mailtype("html"); 
    $this->email->from('[email protected]', 'bharathi'); 
    $list=array('[email protected]','[email protected]','[email protected]'); 
    $this->email->to($list); 
    $this->email->subject('YOU ARE NOT SELECTED'); 
    $link = 'Click on this link - <a href="http://localhost/job_portal/index.php/Login/signin">Click Here</a>'; 
    $this->email->message($link); 
    $this->email->send(); 
    } 
    $this->SelectionModel->add_selection_details($data); 
    $this->load->view('selection/selection_details',$data); 
} 
?> 

, пожалуйста, помогите мне как это сделать .. Спасибо ..

+0

использование формы проверки –

+0

я я использовал форму проверки также ..но он работает только тогда, когда пользователь нажимает на отправку только .. он работает .. он не работает для обновления браузера. – M5533

+0

M5533

ответ

1

Вот решение .. Изменить контроллер и код модели, как это ..

Контроллер:

public function add_selection() 

{

$data["msg"]=""; 
$this->load->model('SelectionModel'); 
$data['rolename']=$this->SelectionModel->getrolename(); 
$data['candidate']=$this->SelectionModel->getcandidates(); 
$data['usertype']=$this->SelectionModel->getusers(); 
$data['companyname']=$this->SelectionModel->getcompanyname(); 

если ($ this- > ввод-> пост()) {

$this->SelectionModel->add_selection_details($this->input->post()); 
$all_users = $this->input->post('user_id'); 
print_r($all_users); 
     foreach($all_users as $key) 
     { 
     $get_email = $this->SelectionModel->get_user_email_by_id($key); 

     $config = Array(
      'protocol' => 'smtp', 
      'smtp_host' => 'ssl://md-in-42.webhostbox.net', 
      'smtp_port' => 465, 
      'smtp_user' => '[email protected]', 
      'smtp_pass' => 'test3' 
    ); 
     $this->load->library('email',$config); 
     $this->email->set_mailtype("html"); 
     $this->email->from('[email protected]', 'bharathi'); 
     $this->email->to($get_email); 
      $this->email->cc('[email protected]'); 
      $this->email->bcc('[email protected]'); 
     $this->email->subject('this is our candidate details pls go through it'); 
     $link = 'Click on this link - <a href="http://localhost/job_portal/index.php/Login/signin">Click Here</a>'; 
     $this->email->message($link); 
     print_r($get_email); 
     if($this->email->send()) 
      { 

       echo "email sent"; 
      } 
      else 
      { 
       echo "email failed"; 

      } 

    } 

}

$ этом-> load-> зрения ('выбор/selection_details', $ данных); }

Модель:

function add_selection_details($post='') 

{

$data=array(
      'selection_id'=>$this->input->post('selection_id'), 
      'comments'=>$this->input->post('comments'), 
      'results'=>$this->input->post('results'), 
     'role_id'=>$this->input->post('role_id'), 
     'candidate_id'=>$this->input->post('candidate_id'), 
     'company_id'=>$this->input->post('company_id'), 
     'user_id'=> implode(',',$this->input->post('user_id')) 
      // 'selection_process'=>$this->input->post('selection_process') 

     ); 
    $this->db->insert('selection', $data); 

}

0

Give контроллер формы действия/FunctionName

изменить эту строку

<button type="submit" name="submit" id="submit"class="btn btn-primary btn-block btn-flat">Submit</button> 

в

<input type="submit" name="submit" id="submit"class="btn btn-primary btn-block btn-flat" value="submit"/> 

и в контроллере добавить это условие

public function add_selection() 
{ 
if($this->input->post('submit') && $this->input->post('submit') =='submit'){ 
//rest of ur code 
} 
} 

либо проверки использования формы для проверки формы является действительным или нет после этого перенаправляет на страницу или перезагрузить страницу

+0

Невозможно использовать isset() в результате выражения (вместо этого вы можете использовать выражение« null! == ») i получил эту ошибку, когда я попробовал этот код в контроллере – M5533

+0

, пожалуйста, проверьте этот код после удаления isset .. isset() используется для проверки переменных esixts – Shibon

0

Вопрос с использованием данных POST является то, что при обновлении браузера будет отправить письмо повторно информацию POST, поэтому многие люди используют js/ajax для отправки такого рода вещей. Я бы предложил посмотреть, как это сделать с помощью этого метода или построить в вашей проверке кода как на контроллере, так и на модели, чтобы не допускать, чтобы нули (неустановленные переменные) были разрешены.

Имея сообщение на странице назад, это хороший способ сделать это.

<form action="[insert the method/view here]" id="form" method="post" >