질문
Q #12368
ajax 이용해 데이터베이스에 값 삽입
코드10
2015-07-21 01:51:15
처음으로 ajax라는 걸 배워서 써먹어보려고 하는데 잘 안되네요.
ajax 통해 간단한 숫자를 데이터베이스에 삽입하려고 하는데 어디서부터 잘못된건지 감이 안와요ㅠ
구글 개발자도구를 통해 보니 status code: 500 Internal Server Error 이라는 메세지가 뜹니다.
뭐가 문제일까요?ㅠㅠ 고수님들 신통한 답변 주시면 감사하겠습니다
views
-------------------------------------------------------------------------------------------------------------------------------------
<input type="text" class="form-control" id="house_id" value="1230055">
<i style="font-size:30px" id="favorite-add-button" class="glyphicon glyphicon-star-empty"></i>
<script>
$('#favorite-add-button').click(function(){
$.ajax({
url:'/index.php/test/favorite_add',
dataType:'json',
type:'post',
data:{'house_id':$('#house_id').val()},
success:function(){
alert('success');
}
})
})
</script>
-------------------------------------------------------------------------------------------------------------------------------------
controllers
-------------------------------------------------------------------------------------------------------------------------------------
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Test extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->database();
}
function index(){
$this->load->view('test');
}
function favorite_add(){
$data = $this->input->post('house_id',true);
$this->load->model('test_model');
$this->test_model->favorite_add(array(
'favorite' => $house_id
));
redirect('test');
}
}
?>
-------------------------------------------------------------------------------------------------------------------------------------
models
-------------------------------------------------------------------------------------------------------------------------------------
<?php
class Test_model extends CI_Model {
function __construct()
{
parent::__construct();
}
function fovorite_add($option){
$this->db->insert('test',$option);
}
}
?>
-------------------------------------------------------------------------------------------------------------------------------------
database
-------------------------------------------------------------------------------------------------------------------------------------
mysql 이구요. test라는 데이터베이스 안에, favorite (varchar 255) 이라는 테이블이 하나 있습니다. 이 테이블에 값을 넣으려고 하는거구요.
-------------------------------------------------------------------------------------------------------------------------------------
mysql 연결이 되는지 확인해보세요.
$data = $this->input->post('house_id',true);
$option = array('favorite' => $house_id);
$this->db->insert('test',$option);
값을 $data 변수로 받았는데 할당은 $house_id로 해서 빈값을 전달해서 문제가 된것 같네요.
그리고 위 구문은 test 테이블의 favorite필드에 값을 넣는 것입니다.
$house_id = $this->input->post('house_id',true);
$option = array('favorite' => $house_id);
$this->db->insert('test',$option);