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