使用bootstrap codeigniter从控制器发送数据到弹出模式

时间:2014-01-09 15:32:16

标签: javascript php ajax codeigniter

你好我打算使用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">&times;</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">&times;</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,'刷新') 我仍然可以使用它吗?

1 个答案:

答案 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']