我在我看来有这个表格
<form name="login" action="<?php echo base_url(); ?>households/filter" id="contactForm" method="POST">
<span class="search-options search-field">
<select id="city" name="city" class="filter-field">
<option selected="" value="-1">
<?php echo $this->lang->line("Filter By City");?>
</option>
<option value="Barcelona">Barcelona</option><option value="Madrid">Madrid</option><option value="Valencia">Valencia</option>
</select>
</span>
</form>
这是用于提交表单的JavaScript
$(document).ready(function() {
var urlmenu = document.getElementById( 'city' );
urlmenu.onchange = function() {
var myform = document.getElementById('contactForm');
myform.submit();
};
});
但它没有向POST发送任何内容 我的控制器就像
function filter() {
var_dump($this->input->post());
exit;
}
你能帮帮我吗,为什么我要
boolean false
答案 0 :(得分:1)
我会评论,但它太长了,尝试这个代码我用它完全相同的东西我想。
请注意我使用bootstrap
HTML
<form action="localhost/etc" method="post" accept-charset="utf-8" class="form-horizontal">
<div class="control-group">
<label class="control-label">Language</label>
<div class="controls">
<select name="language" class="language" id="admin-category">
<option value="1" selected="selected">Moonlanguage</option>
<option value="2">English</option>
<option value="3">Deutsch</option>
</select>
</div>
</div>
</form>
JavaScript(jQuery)
$('#admin-category.language').change(
function(){
$(this).closest('form').trigger('submit');
});
最重要的部分是id
的{{1}}和class
。
答案 1 :(得分:0)
你不能像那样引用那个函数,或者遍历它。
您需要提供索引,例如$this->input->post('field_name')
。
如果您想访问所有帖子数据,可以使用$_POST
变量。
修改强>
在CI 2.1+中,您可以执行以下操作。
$data = $this->input->post(NULL, TRUE); // Returns all POST items with XSS filter
$data = $this->input->post(); // Returns all POST items without XSS filter
答案 2 :(得分:0)
尝试这样做
$(document).ready(function() {
document.getElementById('city').onchange( function(){
document.getElementById('contactForm').submit();
});
});
function filter() {
echo $this->input->post('city');
exit;
}
答案 3 :(得分:0)
在codeigniter中使用预定义的表单方法:
<?php $attr = array('name'=>'login', 'id=>'contactForm');?>
<?php echo form_open('households/filter', $attr);?>
而不是表单语法:
<form name="login" action="<?php echo base_url(); ?>households/filter" id="contactForm" method="POST">
base_url 用于向网页添加图片,脚本或css等外部实体。
site_url 用于在codeigniter中指定控制器。
在 form_open()方法中,无需使用 site_url ,第一个参数会自动视为控制器....
通过jquery ajax提交:
$(document).ready(function() {
$('#contactForm').submit(function(e) {
e.preventDefault();
$.post("<?php echo site_url('households/filter');?>",
{
city: $('#city').val()
},
function(response)
{
//ajax response area
});
});