Php Codeigniter ajax post数据错误
为什么我的ajax不能执行?我已经检查了控制器和模型,它们都很好。 主要的ajax问题是:Php Codeigniter ajax post数据错误,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,为什么我的ajax不能执行?我已经检查了控制器和模型,它们都很好。 主要的ajax问题是: function updateTable() { var count = document.getElementsByName('chk[]').length; var academic = document.getElementById('cb_AcademicYear').value; var acyear = academic.substr(0,4); var sem = "SE00"+acade
function updateTable() {
var count = document.getElementsByName('chk[]').length;
var academic = document.getElementById('cb_AcademicYear').value;
var acyear = academic.substr(0,4);
var sem = "SE00"+academic.substr(5);
var yearlevel = document.getElementById('cb_Yearlevel').value;
var acstart = "";
var acend = "";
var atstart = "";
var atend = "";
var status = "";
var successCount =0;
var ele = "";
var data = "";
for (i=0;i<count;i++)
{
if(document.getElementById('chk_'+i).checked)
{
ele = i+"[]";
acstart = document.getElementById('acstart_'+i).value;
acend = document.getElementById('acend_'+i).value;
atstart = document.getElementById('atstart_'+i).value;
atend = document.getElementById('atend_'+i).value;
status = document.getElementById('cmb_'+i).value;
var postData = {
'acyear' : acyear,
'sem' : sem,
'yearlevel' : yearlevel,
'acstart' : acstart,
'acend' : acend,
'atstart' : atstart,
'atend' : atend,
'status' : status
};
$.ajax({
url: '<?php echo base_url()?>academicCalendar_entry/update',
data: postData ,
type: 'POST',
success: function (data){
successCount++;
}
});
}
}
alert("Successfully inserted ("+successCount+") data(s) including: "+count+ele+acstart+acend+atstart+atend+status+"\n"+academic+acyear+sem+yearlevel+"\n\nand this is the link for the jquery : <?php echo base_url()?>academicCalendar_entry/update/");
我尝试过使用$this->input->post、trim和$\u post(),但都没有解决这个问题
这就是我放置updateTable()函数的地方:
可能存在两个问题:
successcount
$.ajax({
url: '<?php echo base_url()?>academicCalendar_entry/update',
data: postData ,
type: 'POST',
success: function (data){
successCount++;
alert("Successfully inserted ("+successCount+") data(s) including: "+count+ele+acstart+acend+atstart+atend+status+"\n"+academic+acyear+sem+yearlevel+"\n\nand this is the link for the jquery : <?php echo base_url()?>academicCalendar_entry/update/");`
}
});`
$.ajax({
url:'AcademicalCalendar\u条目/更新',
数据:postData,
键入:“POST”,
成功:功能(数据){
successCount++;
警报(“成功插入(“+successCount+”)数据包括:“+count+ele+acstart+acend+atstart+atend+status+”\n“+academic+acyear+sem+yearlevel+”\n\n这是jquery的链接:AcademicalCalendar\u entry/update/”`
}
});`
请添加控制器的内容。您从ajax的成功功能中得到了什么?alert()中有什么内容?我可能错了,但您似乎没有考虑到成功回调是异步运行的,因此您的
alert()
调用将在它之前运行。Chrome>Developer Tools>Network>XHR右下角,这将显示通过AJAX调用发送和返回的内容,您可以通过这种方式进行故障排除。是否使用htaccess删除index.php?如果没有,那么您构建的url是错误的。该警报是在回调之外发出的,只是作为ajax和循环正在工作的通知。每个循环代表一个复选框,如果选中该复选框,那么ajax将运行。否则就不会。它可能在我的控制器中,因为它运行时的所有变量都会显示在警报上。所以ajax或controller-model.OMG都可以,没关系。我太傻了。多亏了@RickCalder,我才发现我的模型有一个错误的属性。。真蠢。谢谢大家。。。
<input type="submit" name="btn_save" id="btn_save" value="Save" onclick="updateTable()"/>
function updateAcademicEntry($academic_year,$semester,$yearlevel,$acstart,$acend,$atstart,$atend,$status,$auditname, $auditactivity, $audittime)
{
$data = array(
'Tahun_Akademik'=>$academic_year,
'Tanggal_Mulai_Akademik'=>$acstart,
'Tanggal_Akhir_Akademik'=>$acend,
'Tanggal_Mulai_Kehadiran'=>$atstart,
'Tanggal_Akhir_Kehadiran'=>$atend,
'Status'=>$status,
'NamaAudit'=>$auditname,
'AktivitasAudit'=>$auditactivity,
'TanggalAudit'=>$audittime,
'ID_Semester'=>$semester,
'ID_Level_Year'=>$yearLevel
);
$this->db
->where('Tahun_Akademik',$academic_year)
->where('ID_Level_Year',$yearLevel)
->where('ID_Semester',$semester)
->update('trkalenderakademik',$data);
}
$.ajax({
url: '<?php echo base_url()?>academicCalendar_entry/update',
data: postData ,
type: 'POST',
success: function (data){
successCount++;
alert("Successfully inserted ("+successCount+") data(s) including: "+count+ele+acstart+acend+atstart+atend+status+"\n"+academic+acyear+sem+yearlevel+"\n\nand this is the link for the jquery : <?php echo base_url()?>academicCalendar_entry/update/");`
}
});`