空白字段跟踪

时间:2014-08-19 23:09:51

标签: javascript php jquery ajax forms

我正在尝试跟踪提交时在我的网站表单上留空的字段。

我使用的表单由我的销售代理使用,因为在销售代理有机会修改提交的信息之前我没有立即看到提交的信息,我希望看看他们是否填写了所有网站上的信息,而不是以后在CRM中添加更多信息。这将有助于我优化表单供其使用。目前,表单使用HTML,PHP,jQuery和AJAX编写。

我还没有尝试过任何东西,因为我甚至不知道从哪里开始。我以前没见过。

如果您需要查看标记或者此问题是否需要更多说明,请与我们联系。如果这是最简单的话,请随意指点教程。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

您可以同时签入PHP或JS。如果您想要执行此服务器端,以便保存此信息,只需检查表单的POST结果。

if (trim($_POST['myField'])=="") {
     //not filled out. if you have default values, check for it in the if above too.
     mail('your@email.com', 'Subject', 'Your body.');
}

答案 1 :(得分:1)

我认为您想知道在提交之前如何检查和验证表单信息的方式。正如你所说的那样你使用jQuery,所以我建议至少有两种解决方案来解决这个问题。

1,自己编写验证脚本。

您可以在提交之前使用以下脚本检查表单数据。

jQuery(form).submit(function(){
    // Here you can validate your form data
    // and if the data are incorrect, 
    // you can return false, and the form submission will be cancelled     
});

2,使用jQuery Validation插件。

该插件可以从http://jqueryvalidation.org/获取,您可以使用以下脚本导入它。

<script type="text/script" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.0/jquery.validate.js"></script>

然后,您只需在表单中添加一些特殊属性。

例如,如果您添加&#34; 必需&#34;您的输入字段,这意味着该字段必须填充字符。

<form>
  <input type="text" name="username" required />
</form> 

然后,编写以下脚本以通知插件在提交之前验证表单。

<script type="text/javascript">
    jQuery(document).ready(function(){
        jQuery("form").validate();
    });
</script>

答案 2 :(得分:1)

这就是PHP empty()的用途:

if (empty(trim($_POST['some_field']))
{
    // Nothing was supplied. 
}

因此,您可以创建一个“必需”字段数组,如下所示:

$required = array('this', 'that', 'the', 'other');

...然后循环遍历它们:

$errors = false;

foreach ($required as $field)
{
    $field_value = isset($_POST[$field]) ? trim($_POST[$field]) : null;

    if (empty($field_value))
    {
        $errors[] = 'The "' . $field . '" field was not submitted.';
    }
}

if ($errors)
{
    // Do something now that you know there are missing fields.
    // Here, we're sending an email...
    $subject = 'These fields were not filled out';
    $body    = 'The following errors occurred: ' . implode(', ', $errors); 
    mail('email@example.com', $subject, $body);
}