我遇到了问题而且我不知道它来自哪里: Codeigniter 3.1.2
这是我的代码:
$this->form_validation->set_rules("fielda", "Field A", "");
$_POST["fielda"] = "valuea";
var_dump(set_checkbox("fielda", "valuea"));
var_dump(set_radio("fielda", "valuea"));
var_dump(set_select("fielda", "valuea"));
var_dump(set_value("fielda", "valuea"));
结果如下:
string(0) ""
string(0) ""
string(20) " selected="selected""
string(6) "valuea"
为什么set_checkbox和set_radio返回一个空字符串?
旁注:这只是为了更好地理解而不是最终代码的测试场景
答案 0 :(得分:1)
2个原因:
$_POST
数组。$_POST
之后修改set_rules()
,此时图书馆已确定该字段未提交。 (由于set_rules()
调用不包含任何规则而被忽略,因此这并未真正生效。提交表单以供实际使用。一种模仿的正确方法是:
$input = array("fielda" => "valuea");
$this->form_validation->set_data($input);
$this->form_validation->set_rules("fielda", "Field A", "alpha");
$this->form_validation->run();
var_dump(set_checkbox("fielda", "valuea")); // will now output "valuea"
答案 1 :(得分:0)
使用第三个参数作为复选框或单选按钮,如
var_dump(set_checkbox("fielda", "valuea",TRUE));