안녕하세요.
고수님등 소스한번 확인 부탁드립니다.
뷰페이지에서 결과값은 정상적 console.log(data); 으로 확인되었는데
form 넘기면 컨트롤러 변수값이 나오지 않습니다.
<script src="<?=$site_url?>/home/assets/js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="<?=$site_url?>/home/assets/js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#category').change(function(){
var id=$(this).val();
$.ajax({
url : "Admin_categories/get_sub_category/"+id,
method : "POST",
data : {id: id},
async : true,
cache: false,
dataType :
success: function(data) {
console.log(data);
var html = '';
var i;
for(i=0; i <data.length; i++){
html += '<option value='+data[i].category_id+'>'+data[i].category_id+' '+data[i].category_code+' '+data[i].subcategory_name+'</option>';
}
$('#sub_category').html(html);
},
error: function (result) {
alert("Error");
//alert("status : " + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error);
}
});
return false;
});
});
</script>
변수확인 값이 나오지 않음
뷰페이지 소스도 보여주세요
어떤 변수값이 넘어 오지 않나요?
category_id ?
category_code ?
뷰페이지를 보아야 할거 같은데요...
아직 실력이 모자라서 정확한 답을 드리긴 어렵고
제가 사용한 소스를 보여 드릴께요.
function schedule_insert(){
var formData = {
'schedule_id' : document.forms['schedule']['schedule_id'].value,
'subject' : document.forms['schedule']['subject'].value,
'contents' : document.forms['schedule']['contents'].value,
'time' : document.forms['schedule']['time'].value,
'type' : document.forms['schedule']['type'].value,
'repeat' : document.forms['schedule']['repeat'].value,
'alarm' : document.forms['schedule']['alarm'].value,
'schedule_lunar' : document.forms['schedule']['schedule_lunar'].value,
'schedule_month' : document.forms['schedule']['schedule_month'].value,
'schedule_day' : document.forms['schedule']['schedule_day'].value,
'schedule_check' : document.forms['schedule']['schedule_check'].value,
'weekday' : document.forms['schedule']['weekday'].value,
'weeksdate' : document.forms['schedule']['weeksdate'].value,
'weeksmonth' : document.forms['schedule']['weeksmonth'].value,
'weekscheck' : document.forms['schedule']['weekscheck'].value,
'start_date' : document.forms['schedule']['start_date'].value,
'end_date' : document.forms['schedule']['end_date'].value
};
$.ajax({
type : 'POST',
url : "<?php echo base_url(); ?>/lunar_calendar/schedule_insert",
beforeSend: function (f) {
disp_ajax('Insert data ...');
},
data : formData,
dataType : 'json',
success : function(schedule) {
disp_ajax('Insert Sucess.');
document.forms['schedule']['schedule_id'].value = schedule.schedule_id;
document.getElementById("schedule_form_div").classList.add('active');
document.getElementById("schedule_form_title").textContent = "일정 보기";
document.getElementById("schedule_form_title").innerText = "일정 보기";
document.getElementById("btn_schedule_update").disabled = false;
document.getElementById("btn_schedule_delete").disabled = false;
document.getElementById("btn_schedule_read").disabled = true;
document.getElementById("btn_schedule_insert").disabled = true;
},
error:function(request,status,error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
};
public function schedule_insert()
{
$id = $this->request->getVar('schedule_id');
if ($id) {
return $this->schedule_update($data);
}
$date = date('Y-m-d H:i:s');
$data = array(
'subject' => $this->request->getVar('subject'),
'contents' => $this->request->getVar('contents'),
'time' => $this->request->getVar('time'),
'repeat' => $this->request->getVar('repeat'),
'type' => $this->request->getVar('type'),
'alarm' => $this->request->getVar('alarm'),
'schedule_lunar' => $this->request->getVar('schedule_lunar'),
'schedule_month' => $this->request->getVar('schedule_month'),
'schedule_day' => $this->request->getVar('schedule_day'),
'schedule_check' => $this->request->getVar('schedule_check'),
'weekday' => $this->request->getVar('weekday'),
'weeksdate' => $this->request->getVar('weeksdate'),
'weeksmonth' => $this->request->getVar('weeksmonth'),
'weekscheck' => $this->request->getVar('weekscheck'),
'start_date' => $this->request->getVar('start_date'),
'end_date' => $this->request->getVar('end_date'),
'reg_date' => $date,
'modify_date' => $date,
);
$id = $this->schedule_model->insertData($data);
$data = array(
'schedule_id' => $id,
);
return json_encode((object) $data);
}
public function insertData($data)
{
//print_r($data);
if ($this->db
->table($this->schedule_table)
->set($data)
->insert()
) {
//echo $this->db->getLastQuery();
return $this->db->insertID();
} else {
return false;
}
}
<?php echo form_open('calendar/index', 'id="schedule" name="schedule"'); ?>
data : formdata,
위와 같이 넘겨주어야 합니다.
'id ' 로 넘겨주면 $_POST['id'] 로 받아야 하지 않을까요?
darkninja님 답변 너무 감사합니다.
아래와 같이 확인하면 이런 문제가 나옵니다.
$('#category').change(function(){
var id=$(this).val();
alert(id); -> category 값만 나오고
---------------------------------------------------------------------------
<select class="form-control" name="category" id="category">
<option>카테고리선택</option>
<?php foreach($category as $row):?>
<?if(!$_GET['category_id']) { ?>
<option value="<?php echo $row->category_id;?>"><?php echo $row->category_name;?> (<?php echo $row->category_code;?>)</option>
<?php } else { ?>
<option value="<?php echo $row->category_id;?>"><?php echo $row->category_name;?> (<?php echo $row->category_code;?>)</option>
<?php } ?>
<?php endforeach;?>
</select>
<input type="text" id="category_code" name="category_code" value="<?php echo $row->category_code; ?>">
<input type="text" id="category_name" name="category_name" value="<?php echo $row->category_name; ?>">
<input type="text" name="subcategory_name" required="required" class="form-control col-md-7 col-xs-12">
------------------------------------------------------------------------------------------------------------------------------------------------------------------
var formName = "form_categories1";
var category= $("form[name="+formName+"][category]");
var category_code = $("form[name="+formName+"][category_code]");
var category_name= $("form[name="+formName+"][category_name]");
alert(category_name);
위의 코드가 동작할지는 모르겠지만
이런식으로 input에서 category_code 값을 저장해 두어야 나중에 사용할수 있습니다.