제목 | 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 값을 저장해 두어야 나중에 사용할수 있습니다.
|