-1

私の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/");

}

postdata を配列として配置しましたが、これで問題ないと思います。しかし、私はそれをjsonデータ型として入れませんでした。json データ型として配置する必要がありますか? エラー コンソールにエラー メッセージは表示されませんが、データベースに対して実行されませんでした。

誰でもこれを解決できますか??

2012 年 12 月 12 日に編集: これは私のコントローラの update() 関数です:

function update()
    {
        $academic_year = $_POST['acyear'];  //trim($this->input->post('acyear'));
        $semester = $_POST['sem'];          //trim($this->input->post('sem'));
        $yearlevel = $_POST['yearlevel'];       //trim($this->input->post('yearlevel'));
        $acstart = $_POST['acstart'];           //trim($this->input->post('acstart'));
        $acend = $_POST['acend'];               //trim($this->input->post('acend'));
        $atstart = $_POST['atstart'];           //trim($this->input->post('atstart'));
        $atend = $_POST['atend'];               //trim($this->input->post('atend'));
        $status = $_POST['status'];         //trim($this->input->post('status'));
        $auditname = "Admin";
        $auditactivity = "U";
        $audittime = date("Y-m-d");
        $this->load->model('calendar_Model','cm');
        $this->cm->updateAcademicEntry($academic_year,$semester,$yearlevel,$acstart,$acend,$atstart,$atend,$status,$auditname, $auditactivity, $audittime);
        return true;
    }

$this->input->post、trim、および $_POST() を使用してみましたが、どれも解決しません。

そして、これが updateTable() func を置く場所です:

<input type="submit" name="btn_save" id="btn_save" value="Save" onclick="updateTable()"/>

これは Model の私の updateAcademicEntry() func です:

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);
}
4

1 に答える 1

0

次の 2 つの問題が考えられます。

  1. コントローラーにエラーがあります。その場合は変更する必要があります。

  2. コールバックにアラートを追加することを意味します。現在、機能が機能しているかどうかにかかわらず、アラートが実行されます。また、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/");`
    
       }
    });`
    
于 2012-12-11T18:11:11.830 に答える