如何在Codeigniter中弹出验证表单的消息?

时间:2012-12-03 19:20:10

标签: php jquery html codeigniter css3

如果我的表单中的某些字段为空,我想显示一条消息(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.
    }

2 个答案:

答案 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)。

对于您的任务,您可以使用警报功能回显脚本部分。但这种方法完全错了,因为:

  • 它增加了服务器负载,编程网站时的主要目标是将用户对服务器的请求减少到最小。为此,您应该尽可能多地进行客户端计算和检查(同时仍然保持安全性。不要忘记用户可以检查脚本源以查看数据的计算方式。)
  • 它仍然使用JavaScript,那么为什么不从头开始在客户端的页面上进行呢?
  • 它创造的代码更混合,更难阅读,更有条理

所以你只是在执行不必要的服务器请求,应该避免。

基本上,在客户端检查客户端的输入,执行业务逻辑(没有人应该看到)和数据库在服务器端工作。

另外,我建议您阅读一些基本的PHP / Web开发书籍来学习与用户交互的基本逻辑,这将为您节省大量时间。