使用ajax表单提交在控制器中获取发布数据

时间:2018-05-16 08:21:11

标签: php jquery ajax codeigniter

我使用ajax提交此表单,我希望控制器中的所有表单发布数据都在数据库中提交表单。但它不起作用。

$('#myForm').on('submit', function(e){
   $.ajax({
     url : controllerUrl, 
     type : 'POST',
     data : $(this).serialize(),
     success : function(data) {

     }
   });
});

5 个答案:

答案 0 :(得分:0)

希望它对您有所帮助:

使用site_urlbase_url代替controllerUrl

注意用您的控制器和方法替换controller_namemethod_name

$('#myForm').on('submit', function(e){
     $.ajax({
         url : "<?php echo site_url('controller_name/method_name');?>", 
         type : 'POST',
         data : $(this).serialize(),
         success : function(data) {
             alert(data);
         }
     });
});

您的控制器结构应如下所示:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Controller_name extends CI_Controller {

    public function __construtct()
    {
       parent::__construtct();
       $this->load->helper('url');
    }

    public function method_name()
    {
       print_r($this->input->post());
       die;
    }
}

答案 1 :(得分:0)

最好尝试为你传递给下一页的价值命名

$('#myForm').on('submit', function(e){
     $.ajax({
         url : controllerurl, 
         type : 'POST',
         data : {values:$(this).serialize()},
         success : function(data) {
             alert(data);
         }
     });
});

答案 2 :(得分:0)

var your_data = "your data";
var url = "<?php echo base_url('my_controller/my_method') ?>";

$.post( url, { data: your_data}, function(response) {
alert(response);
});

for my_controller

public function my_method() {
   $data = $this->input->post('data');
   echo 'Found: ' . $data;   
}

答案 3 :(得分:0)

假设这是你的表格

<form name="form1" id="form1">
    <input type="text" name="t1">
    <input type="text" name="t2">
    <input type="submit" name="sbtn" id="sbtn">
</form>

将此放入页脚

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
    var BASE_URL ="<?= base_url(); ?>";
    $( "#form1" ).submit(function( event ) {
        event.preventDefault();
        $.ajax({
            type: 'POST',
            url: BASE_URL + "controller/methodName",
            data: =$("#form1").serialize(),
            success: function (data) {
                data = JSON.parse(data);

            }
        });
    });
</script>

最后把它放在你的控制器中

function methodName()
{
    echo $t1=$this->input->post('t1');
    echo $t2=$this->input->post('t2');
}

答案 4 :(得分:0)

假设这是你的表格

<强> HTML

<form name="form" id="form1">
    <input type="text" name="name">
    <input type="text" name="email">
    <a class="adddata">send</a>
</form>

AddCategories是控制器名称,addProductsCategories是方法 名。

<强> JS

$(".adddata").on('click',function(){
var addCat= new FormData($("#form1")[0]);

$.ajax({

    url : baseurl+"AddCategories/addProductsCategories",
    type :"POST",
    data :addCat,   
    contentType:false,
    processData:false,
    success:function(res)
    {
        alert("Good job!");
        window.location.reload();
    }
  });
});

<强>控制器

public function addProductsCategories()
{
   $result=array
    (
      "name"=>$_POST["name"],
      "email"=>$_POST["email"],
    );

   $this->db->insert("tbl_name",$result);
}