Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter ajax post数据错误_Php_Jquery_Ajax_Codeigniter - Fatal编程技术网

Php Codeigniter ajax post数据错误

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

为什么我的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"+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()函数的地方:


可能存在两个问题:

  • 您的控制器中有一个错误。在这种情况下,你必须改变它

  • 您的意思是在回调中添加警报。当前,如果功能正常或不正常,警报将运行。 此外,由于ajax与警报异步运行,因此警报的更新值不会为
    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/");`
    
       }
    });`