2016-01-01 5 views
0

Я хочу вставить строку в базу данных с помощью метода ajax jquery post, потому что я использую код ниже в Codeigniter, но мои данные не вставлены в базу данных. Пожалуйста, помогите разобраться в моей проблеме.Невозможно вставить данные в базу данных с помощью ajax post jquery request с codeigniter

Вид:

$("#Submit_Course_Goal").on("click", function (e) { 
e.preventDefault(); 
var dataString = $("form#courseGoalForm").serializeArray(); 
alert("datastring"+dataString); 
$.ajax({ 
    type: "post", 
     url: "<?php echo base_url();?>create_course/create_course_goal", 
    cache: false,    
    data: dataString, 
    success: function(data){ 
    alert("data"+data); 
    }, 
    error: function(){      
    alert('Error while request..'); 
    } 
}); 
}); 

<form name="courseGoalForm" id="courseGoalForm" action="" method="post" enctype="multipart/form-data"> 
<input type="hidden" name="c_id" value="<?=$result;?>" /> 
<textarea data-focus="false" rows="8" name="description1"> </textarea> 
<textarea data-focus="false" rows="8" name="description2"> </textarea> 
<textarea data-lang="en" rows="8" name="description3"> </textarea> 
<input type="submit" name="submit" value="Save" class="btn btn-primary btn btn-success" id="Submit_Course_Goal" /> 
</form> 

Модель:

public function create_course_goal($data,$id) { 

    $this->load->database(); 
    $this->db->where('id', $id); 
    $this->db->update('course', $data); 
    $course_id=$id; 
    if ($this->db->affected_rows() > 0) { 
    return $course_id; 
    } 
    else 
    { 
    return false; 
    } 
} 

Контроллер:

public function create_course_goal(){ 

    $course_goal1=$this->input->post('description1'); 
    $course_goal2=$this->input->post('description2'); 
    $course_goal3=$this->input->post('description3'); 
    $id=$this->input->post('c_id'); 

    $data=array('course_goal1'=>$course_goal1,'course_goal2'=>$course_goal2,'course_goal3'=>$course_goal3); 
    $result_course = $this->course_model->create_course_goal($data,$id); 

    if($result_course!='false') 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 

} 
+0

Также выкладывают значение 'тревог ("datastring" + dataString)' – Saty

+0

Есть ли сообщение код ошибки/ошибки? –

+0

Значение для datastring - это [object Object], [object Object], [object Object], [object Object] – user3653474

ответ

0

Попробуйте эти коды.

("#Submit_Course_Goal").on("click", function (e) { 
e.preventDefault(); 
var description1 = $("#description1").val(); 
var description2 = $("#description2").val(); 
var description3 = $("#description3").val(); 


$.ajax({ 
    type: "post", 
     url: "<?php echo base_url();?>create_course/create_course_goal", 
    cache: false,    
    data: { 
     desc1 : description1, 
     desc2 : description2, 
     desc3 : description3 
    }, 
    success: function(data){ 
    console.log(data); 
    }, 
    error: function(){      
    alert('Error while request..'); 
    } 
}); 
}); 

<!-- Form --> 

<form name="courseGoalForm" id="courseGoalForm" action="" method="post" enctype="multipart/form-data" onclick="return false"> 
    <input type="hidden" name="c_id" value="<?=$result;?>" /> 
    <textarea data-focus="false" rows="8" name="description1" id="description1"> </textarea> 
    <textarea data-focus="false" rows="8" name="description2" id="description2"> </textarea> 
    <textarea data-lang="en" rows="8" name="description3" id="description3"> </textarea> 
    <input type="submit" name="submit" value="Save" class="btn btn-primary btn btn-success" id="Submit_Course_Goal" /> 
</form> 


<!-- Controller --> 

<?php 

    public function create_course_goal(){ 



    $data=array(
     'ID' => $this->input->post('c_id'), 
     'course_goal1'=> $this->input->post('desc1'), 
     'course_goal2'=> $this->input->post('desc2'), 
     'course_goal3'=> $this->input->post('desc3') 
     ); 
    $result = $this->course_model->create_course_goal($data); 

    if ($result) { 
     echo 'success'; 
    }else echo 'fail'; 

} 


/*MODEL*/ 

function create_course_goal($data = array()) 
    { 
    return $this->db->insert('course',$data); 

    } 

?> 
0

Попробуйте это.

Контроллер.

public function create_course_goal(){ 



    $data=array(
     'ID' => $this->input->post('c_id'), 
     'course_goal1'=> $this->input->post('description1'), 
     'course_goal2'=> $this->input->post('description2'), 
     'course_goal3'=> $this->input->post('description3') 
     ); 
    $result = $this->course_model->create_course_goal($data); 

    if ($result) { 
     echo 'success'; 
    }else echo 'fail'; 

} 

Модель

function create_course_goal($options = array()) 
    { 

    if(isset($options['course_goal1'])) 
     $this->db->set('course_goal1',$options['course_goal1']);; 
    if(isset($options['course_goal2'])) 
     $this->db->set('course_goal2',$options['course_goal2']);; 
    if(isset($options['course_goal3'])) 
     $this->db->set('course_goal3',$options['course_goal3']);; 


    $this->db->where('ID',$options['ID']); 
    $this->db->update('course'); 
    return $this->db->affected_rows(); 
    } 

Примечание: course_goal1, course_goal2, course_goal3 должны быть такими же, как и в базе данных. и курсом должно быть имя таблицы базы данных.

Это был для обновления базы, если вы хотите, чтобы вставить новые данные использовать эту модель

function addNewData($data = array()) 
    { 
    return $this->db->insert('course',$data); 

    } 

Примечание 2: в вашей базе данных «идентификатор» должно быть первичными и авто приращение Вашего имени таблицы должно быть «Конечно» строк и имена должны быть «course_goal1», «course_goal2», «» course_goal3

+0

-Enes: Я пробовал ваш код, но та же проблема. – user3653474

+0

функция testCourse общественности() { $ Данные = массив ( 'ID' => '1', 'course_goal1' => 'test1', 'course_goal2' => 'test2', 'course_goal3' => 'test3' ); $ result = $ this-> course_model-> create_course_goal ($ data); if ($ result) { echo 'success'; } else echo 'fail'; } Каков результат: –

+0

btw вы можете установить новую запись в базу данных или обновить. –

0

вы пробовали метод удаления = «после» от формы и представить свои данные с помощью AJAX

+0

я должен представить его, используя почтовый метод – user3653474

+0

вы уже делаете это, ajax, почему вы добавляете его два раза? –

+0

Я получаю значение из текстового поля, но не могу получить значение, используя textarea – user3653474

1

вы пробовали это!

var dataString = $ ("# courseGoalForm"). Serialize();

вместо

вар dataString = $ ("форма № courseGoalForm") serializeArray().

+0

Да, но не найдено решение – user3653474

Смежные вопросы