你好我打算使用modal bootstrap来做一个忘记密码的功能.. 在我没有弹出模态之前我做了..我知道如何传递数据.. 但现在我不知道如何从控制器发送数据弹出模式..
这是我的代码:
<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,'刷新') 我仍然可以使用它吗?
答案 0 :(得分:2)
修改强>
将数据从控制器传递到引导模式,您需要 json 。要做到这一点,试试这个:
控制器中的
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode( $your_data_array ));
此代码将您的数组数据更改为JSON,然后将其发送到您调用此方法的任何内容。使用您的AJAX调用此方法并成功获取此数据并使用JSON.pars()
方法解析它并将它们放入您的模态。
<小时/> 在CodeIgniter中,在使用模型之前,您需要加载它。例如,您在名为
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']