| 제목 | ajax data 결과값 컨트롤러 넘기기 문의 | ||
|---|---|---|---|
| 카테고리 | JavaScript | ||
| 글쓴이 | 아이언맨 | 작성시각 | 2023/03/14 15:30:24 |
|
|
|||
|
안녕하세요. 고수님등 소스한번 확인 부탁드립니다. 뷰페이지에서 결과값은 정상적 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> |
|||
| 다음글 | 템플릿 사용에 대해서 문의 드립니다. (2) | ||
| 이전글 | hwpx 마임타입 문의 (1) | ||
|
변종원(웅파)
/
2023/03/14 15:45:54 /
추천
0
컨트롤러 소스도 올려주세요
|
|
아이언맨
/
2023/03/14 15:54:55 /
추천
0
public function createsub_category()
{
변수확인 값이 나오지 않음 $_POST['category_id'];
$_POST['category_code'];
$this->input->post('id', true);
$data = array();
$data['category_id'] = $this->input->post('category_id');
$data['category_code'] = $this->input->post('category_code');
echo $data;
$subcategory_name = $this->input->post('subcategory_name', TRUE);
$category_id = $this->input->post('category_id', TRUE);
$category_code = $this->input->post('category_code', TRUE);
$data = array(
'category_id' => $this->input->post('category_id'),
'subcategory_name' => $this->input->post('subcategory_name'),
'category_code' => $this->input->post('category_code')
);
$result = $this->Admin_product_model->insert_subcategory($data);
redirect('/Admin_categories', 'refresh');
|
|
darkninja
/
2023/03/14 22:48:42 /
추천
0
뷰페이지 소스도 보여주세요 어떤 변수값이 넘어 오지 않나요? category_id ? category_code ? 뷰페이지를 보아야 할거 같은데요...
|
|
아이언맨
/
2023/03/15 10:10:15 /
추천
0
뷰페이지
1차카테고리 선택
<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>
2차 카테고리 입력
<input type="text" name="subcategory_name" required="required" class="form-control col-md-7 col-xs-12">
1차 카테고리 선택하고 category_id,category_code 값을 받아서
서브 카테고리 등록시 2차카테고리 입력저장시 category_id,category_code 값을 받아 저장 하려고 합니다. subcategory_name 입력한 값은 정상으로 넘오옵니다. category_id
category_code
data 값이 콜트롤러에 넘기는 방법이 문제인지요.
콘솔부분
0
:
{subcategory_id: '3', category_id: '3', category_code: '10', subcategory_name: '아수스'}
1
:
{subcategory_id: '4', category_id: '3', category_code: '10', subcategory_name: 'MSI'}
2
:
{subcategory_id: '20', category_id: '3', category_code: '10', subcategory_name: '기가바이트'}
length
:
3
화면결과가 나옵니다.
<div id="sub_category" name="sub_category">
3 10 아수스
3 10 MSI
3 10 기가바이트
</div>
|
|
darkninja
/
2023/03/15 14:27:41 /
추천
0
아직 실력이 모자라서 정확한 답을 드리긴 어렵고 제가 사용한 소스를 보여 드릴께요.
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;
}
}
|
|
darkninja
/
2023/03/15 21:04:29 /
추천
0
컨트롤러에서 값을 받기위해서는
$_POST['category_id'];
$_POST['category_code'];
<?php echo form_open('calendar/index', 'id="schedule" name="schedule"'); ?>
넘겨줄때
var formdata = {
category_id : document.forms['폼이름']['category_id'].value,
category_code : document.forms['폼이름']['category_code'].value,
method : "POST",
data : formdata, 위와 같이 넘겨주어야 합니다.
'id ' 로 넘겨주면 $_POST['id'] 로 받아야 하지 않을까요? |
|
아이언맨
/
2023/03/16 10:13:30 /
추천
0
darkninja님 답변 너무 감사합니다.
아래와 같이 확인하면 이런 문제가 나옵니다. $('#category').change(function(){ var id=$(this).val(); alert(id); -> category 값만 나오고 --------------------------------------------------------------------------- var formName = "form_categories1";
var data = $("form[name="+formName+"]").serialize();
alert(data);
경고창 category_id=&cat_id=&product_id=&category_code=&category=3
|
|
darkninja
/
2023/03/16 13:17:47 /
추천
0
<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 값을 저장해 두어야 나중에 사용할수 있습니다.
|