2017-08-01 109 views
0

需要在数据提交后弹出显示成功消息,但问题是一旦我点击提交按钮,它将显示警报消息,并在稍后提交数据。在codeigniter中插入数据后显示成功弹出消息php

<form name="applynow" id="applynow" enctype="multipart/form-data" method="post" action="<?php echo base_url();?>apply/applynow"> 

      <div class ="applyus">     
        <div class="applyfullname contactname">       
         <input type="text" class="form-control names namesss" name="fullname" value="<?php echo set_value('fullname');?>" placeholder="Full Name" required><span class="required">*</span> 
         <?php echo form_error('fullname', '<div class="error">', '</div>'); ?> 
        </div> 

        <div class="applynowemail contactemail"> 
          <input type="email" class="form-control emails" id="email" name="email" value="<?php echo set_value('email');?>" placeholder="Email" required > <span class="requireds">*</span>       
         <?php echo form_error('email', '<div class="error">', '</div>'); ?>       
        </div> 

<button type="submit" class="btn btn-success successss" id="submits" >Submit</button> 

脚本:

<script> 
$('form').on('submit',function(){ 
     alert('submitted'); 
}); 

一旦数据被提交它应该显示弹出式和页面应该重定向到另一个页面。

尝试使用Ajax:

<span class="success">Thank's for submitting the form</span> 
$(document).ready(function() { 
$("form[name='applynow']").submit(function() { 
$.ajax({ 
     type: "POST", 
     url: "career.php", 
     data: $(this).serialize(), 
     success: function() { 
      $('.sucess').fadeIn(100).show(); 

     } 
    }) 

}) 
}) 

立即申请控制器:

public function applynow($job_id) 
{ 
    if ($this->input->post('email')) 
    {   
     $this->form_validation->set_error_delimiters('<br /><span class="error"> ', '</span>'); 
     $this->form_validation->set_rules('fullname', 'First Name', 'required'); 
     $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 

     $this->form_validation->set_rules('captcha', 'Captcha', 'required');    

     if ($this->form_validation->run() == FALSE) 
     { 
      $data['records2']= $this->career_model->getcareerdatas($job_id); 
      $data['mainpage']='apply'; 
      $this->load->view('templates/template',$data);    
     } 
     else 
     {     
      $inputCaptcha = $this->input->post('captcha'); 
      $sessCaptcha = $this->session->userdata('captchaCode');    
      if ($inputCaptcha === $sessCaptcha) 
      { 
       $result = $this->apply_model->apply($this->input->post('email')); 
       $data['records2']= $this->career_model->getcareerdatas($job_id); 
       return true; 
       if ($result) 
       { 
        $this->flash->success('<h2 style="color:green">Thank You applying to this post!will get back you soon once shortlisted..</h2>'); 
        redirect('apply'); 
       } else 
       { 
        $this->flash->success('<h2 style="color:red">Sorry ! Message sending failed</h2>'); 
        redirect('apply'); 
       } 
      } else { 
       $this->flash->success('<h2 style="color:red">Captcha code was not match, please try again.</h2>'); 
       redirect('apply'); 
      }     
     } 
    } 
    $config = array(
     'img_path' => 'captcha_images/', 
     'img_url' => base_url() . 'captcha_images/', 
     'img_width' => '150', 
     'img_height' => 40, 
     'word_length' => 6, 
     'font_size' => 30 
    ); 
    $captcha = create_captcha($config); 
    $word = $captcha['word']; 
    $this->session->unset_userdata('captchaCode'); 
    $this->session->set_userdata('captchaCode', $word); 
    $data['captchaImg'] = $captcha['image']; 
    $data['mainpage'] = "apply"; 
} 
+0

如果你想提交数据,那么你必须使用后,显示成功消息'''$这个 - >会话级> set_flashdata(“SUCCESS_MSG”,“成功” );'''。它会显示在下一页,您想要显示成功。 – kishor10d

+0

@ kishor10d工作正常我已经这样做了,但需要在弹出框中显示消息 – user8001297

+0

然后使用ajax提交表单值,在'''success'''上显示消息。 – kishor10d

回答

2
<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 
<div class ="applyus">     
<div class="applyfullname contactname">       
<input type="text" class="form-control names namesss" name="fullname" value="" placeholder="Full Name" > 
</div> 

<div class="applynowemail contactemail"> 
    <input type="email" class="form-control emails" id="email" name="email" value="" placeholder="Email" >             
</div> 
<button class="btn btn-success successss" id="sub" >Submit</button> 
<script> 
$("#sub").click(function() { 
    var url = 'applynow.php'; 

    var data = { 
     'namesss' : $(".namesss").val(), 
     'emails' : $(".emails").val() 
    } 

    alert('Data before send is:'); 
    alert(JSON.stringify(data)); 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: data 
    }).done(function(str) { 
    alert('Data from php is:'); 
     alert(JSON.stringify(str)); 
     var result = JSON.parse(str); 
     alert(result['variable1']); 
     alert(result['variable2']); 
    }); 
}); 
</script> 

</body> 
</html> 

applynow.php:

<?php 
class test() { 
    public function applynow($job_id) 
    { 
     $result = []; 
     $result['variable1'] = 'name is: ' . $_POST['namesss']; 
     $result['variable2'] = 'email is: ' . $_POST['emails']; 
     echo json_encode($result); 
    } 
} 

$test = new test(); 
$test->applynow('1'); 

你可以看到警报 “AAA”;所有作品


在你真正的代码,你需要更换 $这个 - >快速柱>成功( '测试');回声'测试'; 并删除重定向('apply');从PHP

在此

的js,你需要改变路径,以PHP脚本

+0

url:url,代替url需要更换的东西 – user8001297

+0

这个解决方案绝对适合你。 – kishor10d

+0

如果您将JQUERY选择器更改为正确我认为此解决方案正在工作 –

0

请在你的代码像下面给出一些变化。

<form name="applynow" id="applynow" enctype="multipart/form-data" method="post"> 

      <div class ="applyus">     
        <div class="applyfullname contactname">       
         <input type="text" class="form-control names namesss" name="fullname" value="<?php echo set_value('fullname');?>" placeholder="Full Name" required><span class="required">*</span> 
         <?php echo form_error('fullname', '<div class="error">', '</div>'); ?> 
        </div> 

        <div class="applynowemail contactemail"> 
          <input type="email" class="form-control emails" id="email" name="email" value="<?php echo set_value('email');?>" placeholder="Email" required > <span class="requireds">*</span>       
         <?php echo form_error('email', '<div class="error">', '</div>'); ?>       
        </div> 

<button type="submit" class="btn btn-success successss" id="submits" >Submit</button> 

您必须使用async: false将指示浏览器第一个完成这个请求,然后去其他代码

<script> 
    $(document).ready(function() { 
    $('#applynow').validate({ 

      rules: { 



      }, 

      messages: { 

      }, 


      submitHandler: function (form) { 
var url ="<?php echo base_url();?>apply/applynow"; 
var reDirectUrl = "<?php echo base_url();?>career.php"; 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: $(this).serialize(), 
     async : false, 
     success: function(data){ 
     // console.log('data', data); 
      if(data == 1){ 
       $('.sucess').fadeIn(100).show(); // Need to set the success msg in the popup " Thank You applying to this post!will get back you soon once shortlisted.. " 

      }else if(data == 0){ 
       // Do Something like this>> $('.failed').fadeIn(100).show(); // Sorry ! Message sending failed 
      } 


     } 
    }) 

}) 
}); 
</script> 

变化适用现在控制器:

public function applynow($job_id) 
{ 
    if ($this->input->post('email')) 
    {   
     $this->form_validation->set_error_delimiters('<br /><span class="error"> ', '</span>'); 
     $this->form_validation->set_rules('fullname', 'First Name', 'required'); 
     $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 

     $this->form_validation->set_rules('captcha', 'Captcha', 'required');    

     if ($this->form_validation->run() == FALSE) 
     { 
      $data['records2']= $this->career_model->getcareerdatas($job_id); 
      $data['mainpage']='apply'; 
      $this->load->view('templates/template',$data);    
     } 
     else 
     {     
      $inputCaptcha = $this->input->post('captcha'); 
      $sessCaptcha = $this->session->userdata('captchaCode');    
      if ($inputCaptcha === $sessCaptcha) 
      { 
       $result = $this->apply_model->apply($this->input->post('email')); 
       $data['records2']= $this->career_model->getcareerdatas($job_id); 
       return true; 
       if ($result) 
       { 
        echo '1'; exit; 
//     $this->flash->success('<h2 style="color:green">Thank You applying to this post!will get back you soon once shortlisted..</h2>'); 
//     redirect('apply'); 
       } else 
       { 
        echo '0'; exit; 
//     $this->flash->success('<h2 style="color:red">Sorry ! Message sending failed</h2>'); 
//     redirect('apply'); 
       } 
      } else {     

       $this->flash->success('<h2 style="color:red">Captcha code was not match, please try again.</h2>'); 
       redirect('apply'); 
      }     
     } 
    } 
    $config = array(
     'img_path' => 'captcha_images/', 
     'img_url' => base_url() . 'captcha_images/', 
     'img_width' => '150', 
     'img_height' => 40, 
     'word_length' => 6, 
     'font_size' => 30 
    ); 
    $captcha = create_captcha($config); 
    $word = $captcha['word']; 
    $this->session->unset_userdata('captchaCode'); 
    $this->session->set_userdata('captchaCode', $word); 
    $data['captchaImg'] = $captcha['image']; 
    $data['mainpage'] = "apply"; 
} 

我希望这可能会帮助你。谢谢!

+0

carrer.php是提交后重定向的页面 – user8001297

+0

已更改代码与您已发布的代码,但它不工作它正在重定向到职业页 – user8001297

+0

请检查新代码中的更改.. –

相关问题