CakePHP 2.x를 사용하고 있습니다. jquery ui에서 모달 대화 상자를 닫은 후 (제출 후), 전체 페이지를 새로 고친 후 새 값으로 내 페이지 새로 고침의 드롭 다운을 갖기를 원합니다. 어떻게하면 될까요? 내 ArticlesController.php전체 페이지 대신 드롭 다운 값 하나만 새로 고침 CakePHP
public function admin_add() {
//setting active link
$this->set('active', 'new_article');
if ($this->request->is('post')) {
$this->request->data['Article']['posted'] = date('Y-m-d H:i:s');
$this->Article->create();
if ($this->Article->save($this->request->data)) {
$this->Session->setFlash(__('The article has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The article could not be saved. Please, try again.'));
}
}
$categories = $this->Article->Category->find('list');
$this->set(compact('categories'));
}
에 내보기 페이지 (admin_add.php)
<div>
<?php echo $this->Form->create('Article');?>
<?php
echo $this->Form->input('title');
echo $this->Form->input('author');
//THIS IS THE DROPDOWN PART
echo $this->Form->input('category_id');
//THIS IS THE PART FOR CALLING THE MODAL DIALOG TO ADD A NEW CATEGORY
echo '<div class="addNewCategory">';
echo 'add';
echo '</div>';
?>
<?php echo $this->Form->end(__('Submit'));?>
</div>
<!-- Modal Dialog for Adding New Category (THIS IS HIDDEN UNTIL GET CALLED AS MODAL DIALOG)-->
<div class="dialog-form" title='Create new Category'>
<?php echo $this->Form->create('Category');?>
<?php
echo $this->Form->input('name');
?>
<?php echo $this->Form->end(__('Submit'));?>
</div>
<script type="text/javascript">
$('.dialog-form').dialog({
autoOpen: false,
title: 'New Category',
modal: true,
height: 300,
width: 350,
close: function() {
}
});
$('.addNewCategory').click(function() {
$('.dialog-form').dialog('open');
});
$('.dialog-form .submit').click(function(e) {
var value = document.getElementById('CategoryName').value;
var data = {'data[Category][name]':value};
e.preventDefault();
$.ajax({
type:"POST",
url: "<?php echo $this->Html->url(array('controller' => 'categories', 'action' => 'addmodal', 'admin' => TRUE)); ?>",
data: data,
success: function() {
$('.dialog-form').dialog('close');
//WHAT SHOULD I DO IN HERE AFTER THE DIALOG CLOSED TO UPDATE THE DROPDOWN OR IF ITS NOT IN HERE PLEASE LET ME KNOW THE SOLUTION
}
})
});
</script>
에
위의 컨트롤러와 뷰와 스크립트 코드의 일부이다. 대문자로 된 설명이 내 설명이다. 감사합니다.
성공 함수는'POST' URL에서'options'을 포함하는'select'를 포함하는'data' 매개 변수를 전달해야합니다. 바꿀 필요가있는'select'를 대체하도록 설정하십시오. – Matt
@Matt 위의 코드를 기반으로 코드 예제를 제공 할 수 있습니까? 나는 꽤 이해하지 못한다. – Harts
내 대답을 확인하십시오. 도움이되기를 바랍니다! – Matt