我正在使用Codeigniter Framework
我在控制器中使用以下代码:
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将发布数据发送到页面)
$.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']))
这个DOES
if(isset($_POST['field3']) && (empty($_POST['field3']) == 0))
这个DOES
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");
}
答案 0 :(得分:0)
您不应该将$ _POST与codeigniter一起使用。 http://ellislab.com/codeigniter/user-guide/libraries/input.html
如果您想了解更多信息,请阅读文档:)