如果我的表单中的某些字段为空,我想显示一条消息(jquery like)。弹出窗口或其他东西。在我的控制器中,我有这段代码:
if($this->form_validation->run() == FALSE)
{
$this->load->view('registry_v');
//Here I want to show some message, some popup or anything (not echo)
//Saying that some field is missing or empty.
}
答案 0 :(得分:1)
做这个服务器端会非常痛苦。你想用javascript来做这种事情。但是,javascript可能会在客户端被禁用,因此您希望优雅地降级为某些替代方案,例如字段下方的简单标签或类似内容。
在服务器端可能 ,但是从PHP代码回显了一些javascript,虽然这可能不被认为是好的做法。我个人反对这一点,但由你来决定你想怎么做。
答案 1 :(得分:1)
以下是您应该如何完成任务的示例:
<!DOCTYPE html>
<html>
<head>
<script>
function validateForm()
{
var age = document.forms["myForm"]["age"].value;
if (age == null || age == "")
{
alert("Enter your age.");
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="age.php" onsubmit="return validateForm()" method="POST">
Age: <input type="text" name="age">
<input type="submit" value="Submit">
</form>
</body>
</html>
这样的任务的常见方法是使用Javascript检查客户端计算机上的输入。 但是,客户的输入永远不应该被信任(他可能会犯错,他可能会故意提供不正确的数据,他可以尝试执行SQL注入等攻击),所以你应该再次检查他的输入,但是在服务器上 - 方已经。
基本逻辑:
1)。在客户端计算机上检查客户端的输入。如果出现问题 - 给他一个提醒/写错误。如果检查完成且没有任何错误 - 接受用户输入并将其发送到服务器。 (由Javascript / JQuery执行)
2)。在使用此输入执行服务器逻辑之前,再次在服务器端检查用户的输入(防止SQL注入和其他可能危险的客户端操作)。 (由后端语言执行,在您的情况下为PHP)。
对于您的任务,您可以使用警报功能回显脚本部分。但这种方法完全错了,因为:
所以你只是在执行不必要的服务器请求,应该避免。
基本上,在客户端检查客户端的输入,执行业务逻辑(没有人应该看到)和数据库在服务器端工作。
另外,我建议您阅读一些基本的PHP / Web开发书籍来学习与用户交互的基本逻辑,这将为您节省大量时间。