如何从控制器Codeigniter中的Ajax获取数据

死者

我的视图中有一个可编辑的表。首先,表中没有数据,但是用户可以在表中添加数据,因为它是可编辑的。由于我还有一个可以添加新行的按钮,因此表中没有确切的行数。我想获取用户已添加的数据并将其保存在数据库中。

我有以下代码:

视图:

 <table class="table " id="memberTB">
    <thead><tr><th >First Name</th><th >Middle Name</th><th>Last Name</th></tr></thead>
    <tbody>
                   <tr id="first"><td><span class="edit"></span></td>
                   <td><span class="edit"></span></td>
                   <td><span class="edit"></span></td></tr>
    </tbody>
     <button type="button" class="btn btn-link" id="addrow"><span class="fa fa-plus"> Add new row</span></button>

</table>
<br><button type="button" class="btn" id="savebtn">Save</button> <a href="#" class="btn" id="resetbtn">Reset</a>

JS:

$.fn.editable.defaults.mode = 'inline';
$.fn.editable.defaults.showbuttons = false;
$.fn.editable.defaults.url = '/post';
$.fn.editable.defaults.type = 'text';

// make all items having class 'edit' editable
$('.edit').editable();

    // this is to automatically make the next item in the table editable
$('.edit').on('save', function(e, params){
    var that = this;
    // persist the old value in the element to be restored when clicking reset
    var oldItemValue = $(that)[0].innerHTML;
    if (!$(that).attr('oldValue')) {
        console.log('persisting original value: ' + oldItemValue)
        $(that).attr('oldValue', oldItemValue);
    }
    setTimeout(function() {
        // first search the row
        var item = $(that).closest('td').next().find('.edit');
        console.log(item);
        if (item.length == 0) {
            // check the next row
            item = $(that).closest('tr').next().find('.edit');
        }
        item.editable('show');
    }, 200);
});

$('#resetbtn').click(function() {
    $('.edit').each(function() {
        var o = $(this);
        o.editable('setValue', o.attr('oldValue'))  //clear values
        .editable('option', 'pk', o.attr('pk')) //clear pk
        .removeClass('editable-unsaved')
        .removeAttr('oldValue');
    });
});


$('#savebtn').click(function() {
    var person = [];
    var x=1;
    $('tbody tr',$('#memberTB')).each(function(){
        for(var i = 0 ; i < cells ; i++)
        {

            person[x][i]=$(this).find('td').eq(i).text();
        }
        x++;
    });

    $.ajax({
        url: '<?php echo base_url("index.php/test/Savedata");?>',
        type: "post",
        data: { values: arraylng },
        cache: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {

        }
    });
});
$('#addrow').click(function() {
    $('#memberTB > tbody:last').append(' <tr><td><span class="edit"></span></td><td><span class="edit"></span></td><td><span class="edit"></span></td></tr>');
    $('.edit').editable();
});

控制器:[在test.php内]

public function saveData(){

  $this->load->model('test_model');
  $myArray = $_REQUEST['values'];
  echo sizeof($myArray);
}

每当我单击保存按钮时,根本没有任何响应。请帮我..

添加的信息:我没有在这里包括我的SQL插入语句,因为我想先测试是否$myArray在表中添加了数据。

伊戈尔·格雷格(Igor Greg)

最好使用这个ajax

var arraylng = [3,4,7];
$.ajax({
    url: '<?php echo base_url("index.php/test/Savedata");?>',
    type: "post",
    data: {values: JSON.stringify(arraylng)},
    cache: false,
    success: function (response) {
        alert(response);
    }
});

arraylng是一个数组,在代码中不存在。我在这里添加它进行调试。假设您要发送person []数组,编写数据:{values:JSON.stringify(person)}。现在,由于for中的“ i <个单元格”,人员数组可能不存在。什么是细胞?

响应一词只是一个名称,任何名称,但最好避免使用“数据”。

在test.php中,sizeof($ myArray)是什么?只是,echo $ myArray;

单击“保存”时,必须在警报中获取$ myArray内容。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过ajax在控制器的方法中获取数据?

Codeigniter获取控制器中的数据库值

Codeigniter如何在控制器中接收Ajax发布数据

如何从Codeigniter控制器分离Ajax响应中的视图和数据

如何在Codeigniter3控制器中获取POST数据

如何在Codeigniter控制器中获取参数值?

如何在codeigniter中获取控制器方法参数?

如何通过Codeigniter中的URL将数据表单视图发送到控制器,以及如何在控制器中获取数据

如何使用Ajax在JavaScript中获取MVC控制器json数据

如何从控制器中获取通知中的数据?

如何从控制器中的Ajax send()方法接收数据

如何在Odoo控制器中获取JSON数据?

如何从cakephp中的控制器获取数据

如何在 angularjs 控制器中获取 json 数据

如何使用CakePHP在控制器中获取数据?

如何从jsp中的控制器获取json数据?

CodeIgniter不会从控制器到Ajax获取回波数据

如何从angularjs控制器获取数据

AJAX未将数据传递到CodeIgniter控制器

将数据从 ajax 发送到控制器 codeigniter

控制器Codeigniter的复选框未显示在数据表Ajax调用中

ajax复选框未将我的数据传递给codeigniter中的控制器

如果在ajax中使用了序列化,如何在控制器中获取表单数据

无法在Codeigniter中从模型到控制器获取整个数据值

从 Codeigniter 中的另一个控制器获取数据

在 codeigniter 中获取控制器/视图的数据库配置设置

如何从我在控制器中需要的 CodeIgniter 中的配置文件中获取变量

如何从使用 angularjs 中的 api 获取数据的工厂获取控制器中的对象数据

如何从 CodeIgniter 控制器中的数据库中分解数据?