我正在使用Codeigniter框架
我在一个具有以下代码的控制器中:
if(isset($_POST['field']) && !empty($_POST['field']) &&
isset($_POST['field2']) && !empty($_POST['field2'])) {
if(isset($_POST['field3']) && !empty($_POST['field3']))
//whatever
else
//whatever
} else {//whatever}
上面的代码抛出了一个500错误(我使用jquery将post数据发送到页面)
$.ajax({
url: url,
type: "POST",
cache: false,
contentType: false,
processData: false,
data : form,
success: function(data){
console.log(data);
checkResults(data);
},
error: function(xhr, textStatus, error){
alert("Fail");
alert(textStatus);
alert(xhr);
alert(error);
}
});
jquery运行良好,这就是它变得非常奇怪的地方
第一组验证(检查field1和field2)按预期工作,但是检查field3却搞得一团糟
这会抛出500个错误
if(isset($_POST['field3']) && !empty($_POST['field3']))
这不是
if(isset($_POST['field3']))
这不是
if(isset($_POST['field3']) && empty($_POST['field3']))
这样就可以了
if(isset($_POST['field3']) && (empty($_POST['field3']) == 0))
这样就可以了
if(isset($_POST['field3']) && ($_POST['field3'] == ""))
我搞不懂,所有的字段在视图中都有相同的格式:
<input type="text" id="<<ID>>" name="<<NAME>" value="" />
唯一不同的是field3是由jquery使用侦听器传播的。
一开始,它是使用jquery .hide()隐藏的,然后是一个简单的侦听器:
$("#fieldListener").change(function() {
if(this.value == "")
{
$("#field3-id").hide("slow");
$("#field3").removeClass("required");
$("#field3").val("");
} else {
$("#field3-id").show("slow");
$("#field3").addClass("required");
}
发布于 2014-03-04 01:59:47
您不应该将$_POST与codeigniter一起使用。http://ellislab.com/codeigniter/user-guide/libraries/input.html
如果您想了解更多信息,请阅读文档:)
https://stackoverflow.com/questions/20230124
复制相似问题