-1

如果我的表单的某些字段为空,我想显示一条消息(类似 jquery)。弹出窗口什么的。在我的控制器中,我有这段代码:

    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.
    }
4

2 回答 2

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 开发书籍来学习与用户交互的基本逻辑,它将为你节省大量的时间。

于 2012-12-03T20:11:27.367 回答
1

做这个服务器端会很痛苦。你想为这种事情使用 javascript。但是,javascript 可能在客户端被禁用,因此您希望优雅地降级为某些替代方案,例如字段下方的简单标签或类似的东西。

虽然在服务器端可能会从 php 代码中回显一些 javascript,尽管这可能不被认为是好的做法。我个人反对这一点,但由你决定你想怎么做。

于 2012-12-03T19:25:48.303 回答