Gdy wysyłam formularz dostep do wysłanego pola w CI jest na zasadzie
$this->input->post('menu_id')
Chciałem stworzyć dwa selecty zależne od siebie , cos jak tu:
i prawie mi się to udało, została mi kwestia wywoałania:
$data['pages_list'] = $this->model_pages->showParentPages($this->input->post(menu_id'));
i tu jest pytanie bo nie moge przed wyslaniem formularza miec dostepu do id z pierwszego selecta
tzn. załóżmy, że w selecie pierwszym sa 2 pozycje menu1 i menu2, jak to rozrozniac?
Gdy wywoluje skrypt z palca, tj:
$data['pages_list'] = $this->model_pages->showParentPages(1);
nie ma problemu
Proszę o jakąś rade, poniżej kod:
public function showParentPages($menu_id)
{
foreach (scandir(APPPATH . 'controllers\\frontend\\pages\\') as $file) {
if ($file != '.' && $file != '..') {
//var_dump($name[0]);
$this->db->select('id,slug');
$this->db->from('pages');
$this->db->where('name', $name[0]);
$this->db->where('active', 1);
$this->db->where('group_id', $menu_id);
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
}
}
}
}
return $data;
}
public function test(){
$data['pages_list'] = $this->model_pages->showParentPages($this->input->post(menu_id'));
//var_dump($data['pages_list']); exit();
if(count($data['pages_list'])){
$pro_select_box = '';
$pro_select_box .= '<option value="0" >No parent</option>';
foreach ($data['pages_list'] as $p){
$pro_select_box .='<option value="'.$p['id'].'" >'.$p['slug'].'</option>';
}
echo json_encode($pro_select_box);
}
}
<script>
$(document).ready(function () {
$('#GrouspMenuPage').on('change',function(){
var menu_id = $(this).val();
if(menu_id =='')
{
$('#ParentPage').prop( "disabled", true );
}
else
{
$.ajax({
url:"
<?php echo base_url
(); ?>backend/modules/001/Pages/test",
type:"POST",
data:{'menu_id':menu_id},
dataType: 'json',
success:function (data) {
//alert('ok');
$('#ParentPage').html(data);
console.log(data);
},
error:function(){
alert('error...');
}
});
}
});
});
</script>
<div class="form-group">
<label for="GroupMenuPage">Gdzie wyświetlać</label>
<select name="group_id" class="form-control" id="GrouspMenuPage" >
<option value="0">No visible</option>
<?php if($menu_list): ?>
<?php foreach ($menu_list as $item) : ?>
<option value="
<?php echo $item['id']; ?>">
<?php echo $item['name']; ?></option>
<?php endforeach; ?>
<?php endif; ?>
</select>
</div>
<div class="form-group">
<label for="ParentPage">Parent</label>
<select name="parent" class="form-control" id="ParentPage">
<option value="0">No parent</option>
</select>
</div>
Ten post edytował codeszan 26.09.2017, 16:41:31