Jquery验证:如何调用PHP文件

时间:2011-08-12 11:57:46

标签: php javascript jquery-validate

我对这个javascipt,jquery世界很陌生,我很难掌握它。

我的HTML中有以下内容     

$(document).ready(function(){
   $("#frmEnquiry").validate();
});  
</script>

虽然我不明白,但是该声明背后发生了什么,特别是当它在每个字段条目上验证时(这很棒)。

我的表单定义和提交按钮中有action =“”我创建了一个进一步验证并发送电子邮件的process.php文件,但我不知道我是如何调用该php文件或我将其放在哪里调用或用于执行此操作的语法。我假设它基于validate()的返回。

使用成功或失败消息从PHP文件返回的正确步骤是什么。

如果有人能够以简单的语法级别提供帮助,我会非常感激,因为我已经看了很多可能的解决方案,我的头脑完全混淆了。

我为可能提出一个非常常见的问题而道歉,但是当你刚刚开始时,很难找到一个你完全理解的例子。

4 个答案:

答案 0 :(得分:2)

不要忘记原则:

  • 执行PHP 服务器端
  • javascript已执行客户端

因此,PHP只会在您呼叫服务器时执行,这意味着,如果您调用URL (http://mydomain.com/MyPHPpage.php)或者您正在呼叫您服务器通过 AJAX请求(看似相同,除了没有重新加载客户端)。

相反, javascript仅被称为客户端。所以用于validate()表单的代码只在客户端调用(除非你后面有一个特定的函数可以调用服务器)。因此,javascript将使用您给他的参数验证表单而不调用服务器。这是一种非常好的方法,不会使用不需要的请求(空字段,错误的电子邮件地址......)使服务器过载。

无论如何,您仍然可以在服务器端进行一些其他检查(如果用户存在,则检查您的数据库......)并向用户返回另一条消息。

要回答你的问题,我会问其他一些问题:你想要验证什么?你想检查客户端还是服务器端?哪些数据和目的是什么?

答案 1 :(得分:2)

嗯,有两种一般方法:

  1. Oldschool表单处理:您设置<form action='process.php'>,以便将您的请求提交到该页面。浏览器重新加载并显示您在process.php
  2. 中呈现的内容
  3. Ajax-submit:通过这种方式,您将action留空,使用<form onSubmit = 'return false'>之类的方式阻止提交,然后使用jQuery的AJAX方法之一发送内容:get,{ {3}}或post 。看起来像这样:

    $(document).ready(function(){
        if($('form').validate()){
            $('form').submit(function{
                //Personally I prefer ajax as get and post are just shorthands for this method
                $.ajax({    
                    url:'process.php',
                    dataType:'json',
                    data:{name:nameVal, value:valueVal}
                    success: function(){
                        /*server returned some data, process it as you wish*/
                    }
                });
            });
        }
    });
    

答案 2 :(得分:0)

您需要对PHP脚本进行AJAX调用。如果您的表单数据有效,您可以进行此类调用。您可以将成功回调设置为ajax请求,您可以在其中处理来自PHP的返回数据,并更新数据,显示错误消息或其他内容。从PHP中,您可以返回一个对象或数组,您可以在其中详细说明是否发生错误以及类型。关于AJAX的更多信息 - &gt; http://api.jquery.com/jQuery.ajax/

答案 3 :(得分:0)

在您的情况下,通过检查每个字段的值来通过javascript执行表单验证是合理的。 无需将数据发送到服务器并接收有关其正确性的信息。这种方法使验证复杂化,并没有改善对不良数据的保护。