【问题标题】:Form validation in codeigniter when ajax used to form submit当ajax用于表单提交时,codeigniter中的表单验证
【发布时间】:2016-11-03 15:21:19
【问题描述】:

在这种情况下不会发生表单提交..

$.ajax({
   type: "POST", 
   async: false, 
   url: base_url+"register/registration_val",   
   data: "register_first_name="+first_name,
   success: function(data){
       $('#inferiz').html(data);
   },
   error: function(){
       alert('error');
   }

【问题讨论】:

  • base_url 是代码点火器 base_url() 吗?如果是这样,那么您不能那样使用它,您需要在其位置添加<?php echo base_url(); ?>。

标签: ajax codeigniter validation


【解决方案1】:

在您看来,您可以添加以下内容:

<script type="text/javascript">
  var base_url = "<?php print base_url(); ?>";
</script>

另外尝试提醒并查看 ajax 中最终 url 的值,即 alert(url);

【讨论】:

    【解决方案2】:

    尝试在名字输入中添加一个 id

    <script type="text/javascript">
    $(document).on('submit','#form-reg',function(){ // #form-reg is id on form open tag
    $.ajax({
      url: "<?php echo base_url('register/registration_val');?>",
      type: 'POST',
      data: {
        firstname: $('#firstname').val(),
      },
      dataType: 'html', // I perfer to use json
      success: function(data){
        $('#inferiz').html(data);
      },
      error: function(){
        alert('error');
      }
      }
    });
    });
    </script>
    

    我会使用 dataType: json 更容易地从控制器获取数据

    【讨论】:

      【解决方案3】:

      您使用了data: "register_first_name="+first_name,,这是不正确的。更正为data: {register_first_name:first_name},

      base_url 喜欢这个var base_url = &lt;?php echo base_url(); ?&gt;

      所以,下面是最终代码:

      <script type="text/javascript">
      jQuery(document).ready(function ($) {   
          var base_url = <?php echo base_url(); ?>
      
          $.ajax({
              url: base_url+"register/registration_val", // Url to which the request is send
              type: "POST", // Type of request to be send, called as method
              data: {register_first_name:first_name}, // Data sent to server, a set of key/value pairs representing form fields and values
              contentType: false, // The content type used when sending data to the server. Default is: "application/x-www-form-urlencoded"
          }).done(function (data) {
              $('#inferiz').html(data);           
          }).fail(function (data) {
              console.log('failed');
          });
      }(jQuery));
      </script>
      

      【讨论】:

        【解决方案4】:

        请验证您的视图部分是否提供了与 ajax 函数中相同的 ID。

        查看部分:

        <form  id="form-reg">
        <input name="firstname" id="firstname" type="text" required placeholder="Enter firstname " >
        <span id="name_validation" class="text-danger"></span>
        <button name="submit"  id="submit_button"  onClick="myFunction();" >submit</button>
        </form>
        

        然后更正必须在 php 标签中给出的基本 url 路径。

        function myFunction() { 
           $.ajax({
                url: "<?php echo base_url();?>register/registration_val",
                type: "POST",
                data:'firstname='+$("#firstname").val(),
        
                success: function(msg)
                {
                    alert('done..!');
                }               
            });
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-31
          • 1970-01-01
          • 2013-09-05
          • 1970-01-01
          • 1970-01-01
          • 2012-09-03
          相关资源
          最近更新 更多