我想將複選框的值發佈到控制器使用ajax。但是我發送的數據在控制器中總是空的。阿賈克斯發佈數據到控制器不工作,Codeigniter
my_view.php
<div class="regions">
<label class="check-inline">
<input type="checkbox" id="sangli" name="region[]" value="Sangli" class="category"
onclick="javascript:updateregion()"
> Sangli</label><br>
<label class="check-inline">
<input type="checkbox" id="satara" name="region[]" value="Satara" class="category"
onclick="javascript:updateregion()"
>Satara</label><br>
<label class="check-inline">
<input type="checkbox" id="kolhapur" name="region[]" value="Kolhapur" class="category"
onclick="javascript:updateregion()"
>Kolhapur</label><br>
<label class="check-inline">
<input type="checkbox" id="solapur" name="region[]" value="Solapur" class="category"
onclick="javascript:updateregion()"
>Solapur</label><br>
<input type="hidden" name="filterbyregion" id="filterbyregion">
<script type="text/javascript">
function updateregion() {
$("#sangli").change(function() {
if($(this).prop("checked")) {
var textbox = $(this).val();
document.getElementById("filterbyregion").value = textbox;
//document.filters.submit();
alert(textbox);
jQuery.ajax({
url: '<?php echo site_url();?>resource_controller/view_div',
type: 'POST',
cache: false,
data: {"filterbyregion": textbox},
dataType: 'text',
success: function() {
alert(textbox);
$('#filter_div').load('<?php echo site_url();?>resource_controller/view_div');
},
error: function(error) {
console.log(error);
alert(error);
}
});
}
});
$("#satara").change(function() {
if($(this).prop("checked")) {
var textbox = $(this).val();
document.getElementById("filterbyregion").value = textbox;
//document.filters.submit();
alert(textbox);
jQuery.ajax({
url: "<?php echo site_url();?>resource_controller/view_div",
type: "POST",
cache: false,
data: {"filterbyregion": $("#sangli").val()},
dataType: "text",
success: function() {
alert(textbox);
$('#filter_div').load('<?php echo site_url();?>resource_controller/view_div');
},
error: function(error) {
console.log(error);
alert(error);
}
});
}
});
$("#kolhapur").change(function() {
if($(this).prop("checked")) {
var textbox = $(this).val();
document.getElementById("filterbyregion").value = textbox;
//document.filters.submit();
alert(textbox);
jQuery.ajax({
url: '<?php echo site_url();?>resource_controller/view_div',
type: 'POST',
cache: false,
data: {"filterbyregion": textbox},
dataType: 'text',
success: function() {
alert(textbox);
$('#filter_div').load('<?php echo site_url();?>resource_controller/view_div');
},
error: function(error) {
console.log(error);
alert(error);
}
});
}
});
$("#solapur").change(function() {
if($(this).prop("checked")) {
var textbox = $(this).val();
document.getElementById("filterbyregion").value = textbox;
//document.filters.submit();
alert(textbox);
jQuery.ajax({
url: '<?php echo site_url();?>resource_controller/view_div',
type: 'POST',
cache: false,
data: {"filterbyregion": textbox},
dataType: 'text',
success: function() {
alert(textbox);
$('#filter_div').load('<?php echo site_url();?>resource_controller/view_div');
},
error: function(error) {
console.log(error);
alert(error);
}
});
}
});
</script>
</div>
My_controller.php
public function view_div() {
$rgn = str_replace(",", "','", $this->input->post('filterbyregion'));
$rank = str_replace(",", "','", $this->input->post('ranking'));
$exp = str_replace(",", "','", $this->input->post('selexperiance'));
$qual = str_replace(",", "','", $this->input->post('qualification'));
$sk = str_replace(",","','", $this->input->post('multiskills'));
if($rgn != ""){
$this->q['h'] = $this->resource_model->search_users($sk,$rgn,$qual,$exp,$rank);
$this->q['state'] = $this->place_model->get_state();
$this->q['district'] = $this->place_model->get_district();
$this->q['taluka'] = $this->place_model->get_taluka();
$this->q['courses'] = $this->course_model->get_all_course_names();
if(isset($this->q['h']) && $this->q['h']->num_rows() > 0)
{
$this->load->view('/web/filtered_resources', $this->q);
}
}
return array();
}
我的div是越來越加載,但它是沒有預期的結果數據。
下面是我之前嘗試的另一個腳本。這可能會澄清我的目的:
<script type="text/javascript">
$.noConflict(document).ready(function() {
var textbox = "";
var rgns = [];
if(document.getElementById('sangli').checked) {
if (textbox == "") {
textbox += "Sangli";
} else {
textbox += ", Sangli";
}
rgns.push('sangli');
}
if(document.getElementById('satara').checked) {
if (textbox == "") {
textbox += "Satara";
} else {
textbox += ", Satara";
}
rgns.push('satara');
}
if(document.getElementById('kolhapur').checked) {
if (textbox == "") {
textbox += "Kolhapur";
} else {
textbox += ", Kolhapur";
}
rgns.push('satara');
}
if(document.getElementById('solapur').checked) {
if (textbox == "") {
textbox += "Solapur";
} else {
textbox += ", Solapur";
}
rgns.push('satara');
}
document.getElementById('filterbyregion').value = textbox;
// document.filters.submit();
jQuery.ajax({
url: '<?php echo site_url();?>resource_controller/view_div',
type: "POST",
data: {"txt": textbox},
success: function() {
$('#filter_div').load('<?php echo site_url();?>resource_controller/view_div');
},
error: function(error) {
console.log(error);
}
});
});
</script>
你是不是想多選中的複選框值傳遞給位指示? –
是的,我將該值分配給文本框字段,然後將其傳遞給控制器。 – Nutan
是否有任何特殊目的將其分配給隱藏字段? –