如何使用ajax将新jQuery值传递给CI控制器
问题描述:
首先,我想将数据从数据库显示到VIEW一个表中,然后如果有更改,用户将只需双击表格并输入新的值。 here is the screenshot:如何使用ajax将新jQuery值传递给CI控制器
我与显示和编辑,我尝试接下来要做的是保存新的数据/值,以便我可以将它传递给控制器来完成。
这里是我的数据库获取数据,并使用jquery单击按钮前进它显示表代码..
<script type="text/javascript">
var leads = Array();
var lead_count = 0;
<?php $count = 0; foreach($agent_leads as $info):?>
leads[<?php echo $count; ?>] = {"fullname": "<?php echo $info['fullname'] ?>",
"gender" : "<?php echo $info['gender'] ?>",
"address": "<?php echo $info['address'] ?>",
"city" : "<?php echo $info['city']; ?>",
"state" : "<?php echo $info['state']; ?>",
"zipcode" : "<?php echo $info['zipcode']; ?>",
"email": "<?php echo $info['email'] ?>"
};
<?php $count++; endforeach; ?>
// console.log(lead_count)
// console.log(leads[lead_count])
if(lead_count == 0)
{
var append = '';
append += '<tr>';
append += '<td><div contenteditable>'+leads[lead_count].fullname+'</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].gender+ '</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].address+'</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].city+ '</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].state+ '</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].zipcode+'</div></td>';
append += '<td><div contenteditable>'+leads[lead_count].email+ '</div></td>';
append += '<td><input type="text" id="status"/></td>';
append += '<td><input type="number" id="qty"/></td>';
append += '<td><input type="text" id="comment"/></td>';
append += '<td><button class="btn btn" id="sub" type="submit">Submit</button></td>';
append += '</tr>';
$('#leads_info').html(append);
}
$(document).on('click', '#move_on', function(){
var order = Number($(this).attr('data-order')) + 1;
var append = '';
append += '<tr>';
append += '<td>'+leads[order].fullname+'</td>';
append += '<td>'+leads[order].gender+'</td>';
append += '<td>'+leads[order].address+'</td>';
append += '<td>'+leads[order].city+'</td>';
append += '<td>'+leads[order].state+'</td>';
append += '<td>'+leads[order].zipcode+'</td>';
append += '<td>'+leads[order].email+'</td>';
append += '<td><input type="text" id="status"/></td>';
append += '<td><input type="number" id="qty"/></td>';
append += '<td><input type="text" id="comment"/></td>';
append += '<td><button class="btn btn-success" id="sub" type="submit">Submit</button></td>';
append += '</tr>';
$(this).attr('data-order', order);
$('#leads_info').html(append);
});
那么这里是我的AJAX代码..
$(document).on('click', '#sub', function(){
var infos = Array();
infos['i'] = {
lead:leads[lead_count],
status: $('#status').val(),
qty: $('#qty').val(),
comment: $('#comment').val()
}
$.ajax({
url: window.location + '/sales_report',
type: 'POST',
data: infos,
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log('error');
},
success: function (result) {
console.log('success');
}
});
});
但是当我点击提交传递所有的数据到控制器我得到“错误”在console.log()
我是新来jquery和ajax。我不太了解如何将数组从视图传递到控制器,但是我对如何从模型 - >控制器获取数据知道的很少。如何将表中的新值传递给控制器?
答
如果您看到错误,请打开开发人员控制台,转到网络页面,并在/ sales_report页面上看到错误。
是的,我已经做到了!但我只是把这个代码'console.log('error');'所以我会知道它无法通过,但字面上我不知道为什么它无法通过。如何获取错误消息? – justAbeginner
@justAbeginner console.log(textStatus);的console.log(errorThrown);的console.log(XMLHttpRequest的); – grinat
我得到这个错误'对象{readyState的:4,setRequestHeader:阿贾克斯/ jqXHR.setRequestHeader(),getAllResponseHeaders:阿贾克斯/ jqXHR.getAllResponseHeaders(),getResponseHeader:阿贾克斯/ jqXHR.getResponseHeader(),overrideMimeType:阿贾克斯/ jqXHR.overrideMimeType(),abort:.ajax/jqXHR.abort(),done:jQuery.Callbacks/self.add(),失败:jQuery.Callbacks/self.add(),进度:jQuery.Callbacks/self.add (),状态:.Deferred/promise.state(),13更多...}' – justAbeginner