Привет, я собирался сделать функцию забытого пароля с помощью модального бутстрапа .. до того, как я это сделал без всплывающего модального. Я знаю, как передавать данные. Но теперь я не знаю, как отправлять данные с контроллера на всплывающее модальное ..
Вот мой код:
<div id="forgot-password" class="modal hide fade in" style="display: none; "> <div class="modal-header" style="background-color:#f39c12; color:#fff;"> <h3 id="helpModalLabel"> Forgot Password</h3> </div> <div class="modal-body"> <form class="form-horizontal well" method="post" id="forgot_form" action="<?php echo base_url(); ?>forgotpassword/doforget"> <fieldset> <legend></legend> <div class="control-group"> <?php if( isset($info)): ?> <div class="alert alert-block alert-success fade in" id="alert-message" > <img src="<?php echo base_url("assets")?>/image/Done.png" width="20px" height="20px"> <button type="button" class="close" data-dismiss="alert">×</button> <?php echo($info) ?> </div> <?php elseif( isset($error)): ?> <div class="alert alert-block alert-error fade in" id="alert-message"> <img src="<?php echo base_url("assets")?>/img/icon/warning.png" width="20px" height="20px"> <button type="button" class="close" data-dismiss="alert">×</button> <?php echo($error) ?> </div> <?php endif; ?> <label for="Username" class="control-label span3" >Username</label> <div class="controls"> <input class="span3" type="text" id="Username" name="Username" placeholder="Input the Registered Username" name="Username"/> <span id="UsernamehelpText"></span> </div> </div> <div class="form-actions"> <input type="submit" class="btn btn-primary" value="Send Password" name="submitbtn"/> </div> </fieldset> </form> </div> <div class="modal-footer"> <a href="#" class="btn btn-primary round" data-dismiss="modal">Close</a> </div> </div>
контроллер
public function forget() { if (isset($_GET['info'])) { $data['info'] = $_GET['info']; } if (isset($_GET['error'])) { $data['error'] = $_GET['error']; } $page_content["page_title"] = ""; $page_content["title"] = "Forgot Password"; $page_content["icon_title"] = "home"; $menu_params["sub_current_navigable"] = ""; $page_content["navmenu"] = $this->load->view("nav_menu", "", true); $page_content["menu"] = $this->load->view("main_menu_login", $menu_params, true); if(isset($data)){ $page_content["content"] = $this->load->view("forgotpassword",$data, true); }else{ $page_content["content"] = $this->load->view("forgotpassword","", true); } $this->load->view("template/main_template", $page_content); } public function doforget() { $this->load->helper('url'); $username= $_POST['Username']; $checkuser = $this->forgotpassword_model->getusername($username); print_r($checkuser); $getemail = $this->forgotpassword_model->getemail($username); if(!empty($checkuser)) { $user = $checkuser['0']; $email = $getemail['0']; if(!empty($email['email'])) { $this->sendpassword($user,$email); $info= "Password has been reset and has been sent to email id: ". $email['email']; echo $info; redirect('login/forget?info='.$info, 'refresh'); }else{ $error = "You don't have email, please contact your admin library "; echo $error; redirect('login/forget?error=' . $error, 'refresh'); } }else { $error= "You have input wrong username "; redirect('login/forget?error=' . $error, 'refresh'); echo $error; } }
Может ли кто-нибудь помочь мне перенести это на всплывающее модальное? мне нужен ajax? Я также хочу отправить сообщение об ошибке, чтобы всплыло модальное. Теперь я использую 'login / forget? Error ='. $ error, 'refresh') Возможно ли для меня использовать это?
РЕДАКТИРОВАТЬ
для передачи ваших данных с контроллера на bootstrap modal вам нужен json . для этого попробуйте следующее:
в вашем контроллере
$this->output->set_content_type('application/json'); $this->output->set_output(json_encode( $your_data_array ));
этот код изменяет данные массива на JSON, а затем отправляет его во все, что вы называете этим методом. с вашим AJAX вызовом этого метода и в результате получить эти данные проанализировать его с JSON.pars()
метода JSON.pars()
и поместить их в ваш модальный.
userAuth
. Создание модели выглядит следующим образом:
class UserAuth extends CI_Model{ //your methods }
В вашей модели у вас может быть какой-то метод вроде forgetPass
, который даст вам массив или данные вроде:
public function forgetPass($dataArray){ //your Code }
ИЛИ
public function forgetPass( $data1, $data2, $data3){ //your code }
Если вы хотите использовать вашу модель в методе контроллера, вы можете легко загрузить ее в свой метод контроллера или загрузить ее в конструкторе контроллера следующим образом:
$this->load->model('userAuth');
Когда вам нужен такой метод, в соответствии с приведенным примером вы можете передать свои данные ему как:
$this->userAuth->forgetPass($data);
дополнение:
В CodeIgniter у нас есть встроенные методы для получения данных POST / GET . Они просты в использовании и безопаснее. Вы можете использовать:
$variable = $this->input->post('your_input_name');
ИЛИ
$variable = $this->input->get('your_key');
Вместо $_GET['your_key']
или $_POST['your_input_name']