提交表单后如何在同一页面获取成功信息?

Sylvester Esso_Nmakwe

我正在尝试在同一页面中显示成功和错误消息。我需要改变什么?

形式是将数据发送到数据库,然后在同一个页面显示成功信息,然后重定向到另一个页面。我已经尝试更改表单和 java 脚本中的 ID 值,我仍然得到相同的结果,数据被发送到数据库,它重定向到另一个页面,但在重定向之前没有显示成功消息。

控制器:

public function register_ajax() { 
    //form validation rules
    $this->form_validation->set_rules('org_name', 'Organisation Name', 
     'trim|required');
    $this->form_validation->set_rules('email', 'Email', 
     'trim|required|valid_email|is_unique[new_church.email]',
        array('is_unique' => "This email address is already registered 
        with this application.")
    );
    $this->form_validation->set_rules('password', 'Your Password', 
    'trim');
    $this->form_validation->set_rules('c_password', 'Confirm Password', 
    'trim|required|matches[password]',
        array(
            'matches' => 'Password does not match'
        )
    );
    if ($this->form_validation->run())  {   
        $this->registration_model->update_church(); //insert the data 
        into db
        echo 1;
        redirect(site_url('registration/payment'));
    } else { 
        echo validation_errors();
    }
}

模型:

public function update_church() { 
    $org_name = ucwords($this->input->post('org_name', TRUE)); 
    $email = $this->input->post('email', TRUE); 
    $password = ucfirst($this->input->post('password', TRUE));
    $c_password = ucfirst($this->input->post('c_password', TRUE));
    $data = array (
        'org_name' => $org_name,
        'email' => $email,
        'password' => $password,
        'c_password' => $c_password,
    );
    $this->db->insert('new_church', $data);

    //email admins
    //$this->notify_admins($name, $email, $subject, $message);
}

JavaScript:

//Registration
$('#registration_form').submit(function(e) {
    e.preventDefault();
    var form_data = $(this).serialize();
    $.ajax({
        url: base_url + 'registration', 
        type: 'POST',
        data: form_data, 
        success: function(msg) {
            if (msg == 1) {
                $('#status_msg').html('<div class="alert alert-success 
                text-center"> Success.</div>').fadeIn( 'fast' );
                $('#registration_form')[0].reset(); //reset form fields 
            } else {
                $('#status_msg').html('<div class="alert alert-danger 
                text-center">' + msg + '</div>').fadeIn( 'fast' ).delay( 
                30000 ).fadeOut( 'slow' );
            }
        }
    });
});

看法:

<?php 
    $form_attributes = array("id" => "registration_form");
    echo form_open('registration/register_ajax', $form_attributes); ?>


    <div class="login100-form validate-form">       

      <div class="wrap-input100 validate-input" data-validate = "First 
       name is required">
        <label class="form_header">Organisation Name</label>
        <input class="input100" type="text" name="org_name" value="<?php 
         echo set_value('org_name'); ?>" required/>
        <span class="focus-input100"></span>
      </div>

      <div class="wrap-input100 validate-input" data-validate = "Valid 
        email is required: [email protected]">
        <label class="form_header">Your Work Email Address</label>
        <input class="input100" type="email" name="email" value="<?php 
          echo set_value('email'); ?>" required/>
        <span class="focus-input100"></span>
      </div>

      <div class="wrap-input100 validate-input" data-validate = "Password 
        is required">
        <label class="form_header">Your Password</label>
        <input class="input100" type="password" name="password" value="<? 
         php echo set_value('password'); ?>" required/>
        <span class="focus-input100"></span>
      </div>

      <div class="wrap-input100 validate-input" data-validate = "Confirm Password">

        <label class="form_header">Confirm Password</label>
        <input class="input100" type="password" name="c_password" value="<?php echo set_value('c_password'); ?>" required/>
        <span class="focus-input100"></span>
      </div>

      <div class="text-center p-t-12">
        <p>By clicking the button below, you agree to StreamApp's terms of acceptable use</p>
      </div>

      <div class="m-t-20">  
          <div id="status_msg"></div>
      </div>

      <div class="container-login100-form-btn">
        <button class="login100-form-btn">  NEXT </button>
      </div>

    </div>

      <?php echo form_close(); ?>

我希望在重定向到另一个页面之前会出现一条成功消息

好奇心

您的代码发生的情况是,当您尝试运行表单验证时,它始终为真,因为您设置了一个条件,如果结果为真或为假,则不执行。

if ($this->form_validation->run() == TRUE)  { //you should change it to this   
    $this->registration_model->update_church(); 
     $data['success'] = 1;
} else { //if the form validation run false it will display the error.
     $data['error'] =  validation_errors();
}
echo json_encode($data);

如果您要将消息发送回 AJAX 代码,则应首先使用 JSON 对其进行编码。

要显示它.. 这样做。

if (msg.success == 1) {
     $('#status_msg').html('<div class="alert alert-success 
     text-center"> Success.</div>');
     $('#registration_form')[0].reset(); //reset form fields 
     setTimeout(function(){
         window.location.replace("<?php echo base_url('registration/payment') ?>");
     }, 3000); //set it to your time

} else if(msg.error){
      $('#status_msg').html('<div class="alert alert-danger 
      text-center">' + msg.error + '</div>').fadeIn( 'fast' ).delay( 
      30000 ).fadeOut( 'slow' );
}

希望有帮助。让我知道结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oauth成功/失败后返回同一页面,如何?

来自分类Dev

在同一页面中处理多个表单

来自分类Dev

Rails在同一页面中呈现表单

来自分类Dev

如何使用ajax在提交表单的同一页面中显示echo结果

来自分类Dev

表单提交后留在同一页面上

来自分类Dev

在同一页面中打开HTML表单

来自分类Dev

提交后重定向到同一页面

来自分类Dev

将表单提交到同一页面而不重新加载

来自分类Dev

如何在html表单提交上调用php函数-在同一页面中

来自分类Dev

提交表单后仍显示同一页面

来自分类Dev

成功提交表单并在确认消息上单击“确定”后,重定向到同一页面

来自分类Dev

Django-如何分别编辑和提交多个表单,然后呈现回同一页面?

来自分类Dev

表单提交后重定向到同一页面中的锚点

来自分类Dev

jQuery表单在同一页面中

来自分类Dev

使用联系表单后在同一页面中回显

来自分类Dev

成功提交表单并在确认消息上单击“确定”后,重定向到同一页面

来自分类Dev

如何在同一页面上进行ajax调用ajax请求在同一页面中发送和获取

来自分类Dev

在表单的同一页面中获取php中的表单值

来自分类Dev

表单值到同一页面

来自分类Dev

如何在Codeigniter的同一页面中获取多个查询结果

来自分类Dev

提交表单后如何保持在同一页面

来自分类Dev

提交表单后,停留在同一页面,在页面中显示一个单词

来自分类Dev

如何在同一页面中同步2个表单

来自分类Dev

使用 HttpPost 方法提交表单后 ASP.NET Core 重定向到同一页面

来自分类Dev

RAILS - 将表单提交到同一页面并显示查询结果

来自分类Dev

如何在 Reactjs 的同一页面中显示提交的表单数据?

来自分类Dev

页面重新加载后如何在反应(antd)表中保持同一页面

来自分类Dev

如何在同一页面的同一帖子上提交表单

来自分类Dev

如何在不提交表单的情况下在php同一页面中使用jquery变量

Related 相关文章

  1. 1

    Oauth成功/失败后返回同一页面,如何?

  2. 2

    在同一页面中处理多个表单

  3. 3

    Rails在同一页面中呈现表单

  4. 4

    如何使用ajax在提交表单的同一页面中显示echo结果

  5. 5

    表单提交后留在同一页面上

  6. 6

    在同一页面中打开HTML表单

  7. 7

    提交后重定向到同一页面

  8. 8

    将表单提交到同一页面而不重新加载

  9. 9

    如何在html表单提交上调用php函数-在同一页面中

  10. 10

    提交表单后仍显示同一页面

  11. 11

    成功提交表单并在确认消息上单击“确定”后,重定向到同一页面

  12. 12

    Django-如何分别编辑和提交多个表单,然后呈现回同一页面?

  13. 13

    表单提交后重定向到同一页面中的锚点

  14. 14

    jQuery表单在同一页面中

  15. 15

    使用联系表单后在同一页面中回显

  16. 16

    成功提交表单并在确认消息上单击“确定”后,重定向到同一页面

  17. 17

    如何在同一页面上进行ajax调用ajax请求在同一页面中发送和获取

  18. 18

    在表单的同一页面中获取php中的表单值

  19. 19

    表单值到同一页面

  20. 20

    如何在Codeigniter的同一页面中获取多个查询结果

  21. 21

    提交表单后如何保持在同一页面

  22. 22

    提交表单后,停留在同一页面,在页面中显示一个单词

  23. 23

    如何在同一页面中同步2个表单

  24. 24

    使用 HttpPost 方法提交表单后 ASP.NET Core 重定向到同一页面

  25. 25

    RAILS - 将表单提交到同一页面并显示查询结果

  26. 26

    如何在 Reactjs 的同一页面中显示提交的表单数据?

  27. 27

    页面重新加载后如何在反应(antd)表中保持同一页面

  28. 28

    如何在同一页面的同一帖子上提交表单

  29. 29

    如何在不提交表单的情况下在php同一页面中使用jquery变量

热门标签

归档