2011-05-16 107 views
1

我正在使用Codeigniter,想知道如何创建一个点击时提交表单的复选框?其次,这个复选框将是几个复选框中的一个,这些复选框将用作产品> $ 20,产品< $ 30的过滤器,我如何在url中传递它?我在想/ 1 + 2 + 3点击提交表单的复选框

+0

这真是一个客户端(问题JavaScript)的问题.. – Neal 2011-05-16 19:21:45

回答

3

未与笨的工作很多,但我可以回答如何使表格上检查与JS的复选框提交:

<form id="something"> 
    <input type="checkbox" name="foo" id="foo" value="yes" /> 
</form> 

<script type="text/javascript"> 
$("#foo").click(function() { 
    if ($(this).is(":checked")) 
     $("#something").submit(); 
}); 
</script> 
1

这与PHP和CodeIgniter无关。解决方案是在元素的onclick事件中提交表单。

<input type="checkbox" name="filterx" onclick="document.forms[0].submit()" /> 

如果您愿意,可以使用表单的OnSubmit事件来很好地格式化网址。

要做到这一点,你可以

  • 获得所有所需元素的值,
  • 修建从它一个很好的网址,
  • 设置使用location.href = yourniceurl网址,
  • 取消定期提交通过返回false。

请注意,两种解决方案都需要启用javascript。所以有其他方式提交表单(提交按钮)是一件好事。不要依靠按Enter键进行提交。 Opera将使用Enter键切换复选框而不是提交表单。 如果你喜欢,你可以使用Javascript隐藏提交按钮,这样,具有Javascript的用户将自动提交表单,而没有用户可以使用该按钮。 你将需要确保你的服务器端表单验证器不仅接受漂亮的url,而且丑陋的url(它的值也是?filterx=on)也是如此。

1

JavaScript的问题似乎已经已经解决了;让我们来看看codeigniter的。

您可以通过以下两种方式之一传递网址。

  1. 习语但不限:如/ 1/2/3/4 /等。处理该url的控制器函数都可以使用func_get_args来读取它们,或者如果您已经知道最多可以传递多少个参数,则将默认值null赋予所有非必要的参数;

  2. 不Codeigniterish但对于搜索参数严重更好:使你的配置文件中的查询字符串传递参数,你用GET(min=2&max=3等)通常会与CI的输入级得到他们的价值($min = $this->input->get('min')) 。

相关问题