Php Ajax表单-如果broswer没有';你不支持javascript吗?

Php Ajax表单-如果broswer没有';你不支持javascript吗?,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我了解一些PHP,现在我想使用ajax/jquery将其结合起来。只是为了学习,我做了一些脚本。我想制作一个注册表表单来检查可用性等,但在我开始制作这样一个脚本之前,我想做一些简单的事情来检查它是如何工作的 我的目标是使用ajax创建一个联系表单,它可以正常工作。数据被发送到php验证脚本。错误保存在数组中,它返回错误列表或发送消息 但我有几个问题: 如果浏览器不支持javascript怎么办。有没有一种方法仍然可以发送此消息 submit触发ajaxpost函数。在进入php文件(客户端)之前

我了解一些PHP,现在我想使用ajax/jquery将其结合起来。只是为了学习,我做了一些脚本。我想制作一个注册表表单来检查可用性等,但在我开始制作这样一个脚本之前,我想做一些简单的事情来检查它是如何工作的

我的目标是使用ajax创建一个联系表单,它可以正常工作。数据被发送到php验证脚本。错误保存在数组中,它返回错误列表或发送消息

但我有几个问题:

  • 如果浏览器不支持javascript怎么办。有没有一种方法仍然可以发送此消息
  • submit触发ajaxpost函数。在进入php文件(客户端)之前添加jquery验证的最佳方法是什么

    联系AJAX表单

    <script language="JavaScript" type="text/javascript">
        function ajax_post(){
            // Create our XMLHttpRequest object
            var hr = new XMLHttpRequest();
            // Create some variables we need to send to our PHP file
            var url = "functions/validation.php";
            var name = document.getElementById("name").value;
            var subject = document.getElementById("subject").value;
            var email = document.getElementById("email").value;
            var message = document.getElementById("message").value;
            var vars = "name="+name+"&subject="+subject+"&email="+email+"&message="+message;
            hr.open("POST", url, true);
            // Set content type header information for sending url encoded variables in the request
            hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            // Access the onreadystatechange event for the XMLHttpRequest object
            hr.onreadystatechange = function() {
                if(hr.readyState == 4 && hr.status == 200) {
                    var return_data = hr.responseText;
                    document.getElementById("status").innerHTML = return_data;
                }
            }
            // Send the data to PHP now... and wait for response to update the status div
            hr.send(vars); // Actually execute the request
            document.getElementById("status").innerHTML = "processing...";
    
        }
    </script>
    
    
    函数ajax_post(){
    //创建XMLHttpRequest对象
    var hr=新的XMLHttpRequest();
    //创建一些我们需要发送到PHP文件的变量
    var url=“functions/validation.php”;
    var name=document.getElementById(“name”).value;
    var subject=document.getElementById(“subject”).value;
    var email=document.getElementById(“email”).value;
    var message=document.getElementById(“message”).value;
    var vars=“name=“+name+”&subject=“+subject+”&email=“+email+”&message=“+message;
    hr.open(“POST”,url,true);
    //设置用于在请求中发送url编码变量的内容类型标头信息
    hr.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
    //访问XMLHttpRequest对象的onreadystatechange事件
    hr.onreadystatechange=函数(){
    如果(hr.readyState==4&&hr.status==200){
    var return_data=hr.responseText;
    document.getElementById(“status”).innerHTML=返回数据;
    }
    }
    //立即将数据发送到PHP…并等待更新status div的响应
    hr.send(vars);//实际执行请求
    document.getElementById(“status”).innerHTML=“处理…”;
    }
    

    联系方式 正文

        <label>Name
            <span id="nameInfo" class="small">Add your name</span>
        </label>
        <input type="text" name="name" id="name" />
    
        <label>subject
            <span id="subjectInfo" class="small">Add a subject</span>
        </label>
        <input type="text" name="email" id="subject" />
    
        <label>Email
            <span id="emailInfo" class="small">Add a valid email address</span>
        </label>
        <input type="text" name="email" id="email" />
    
        <label>message
            <span id="messageInfo" class="small">Your message min 20 chars</span>
        </label>
        <input type="text" name="message" id="message" />
    
        <button type="submit" onClick="javascript:ajax_post();">Send</button>
        <div class="spacer"></div>
        <div id="status"></div>
    
    名称
    加上你的名字
    主题
    添加主题
    电子邮件
    添加有效的电子邮件地址
    消息
    你的留言至少20个字符
    发送
    


  • 如果JavaScript不可用,表单将以经典方式提交。在这种情况下,服务器端代码需要处理此问题并返回完整的HTML页面

    如果浏览器不支持javascript怎么办。有没有一种方法仍然可以发送此消息

    如果您正确构建了它,那么如果客户端中没有JavaScript,表单将正常提交数据。JavaScript的使用方式也应该始终如此

    submit触发ajaxpost函数。在进入php文件(客户端)之前添加jquery验证的最佳方法是什么


    在提交前使用捕获表单数据。

    为什么不使用jquery?
    只要让一个
    标记发送数据,并在所述表单的submit()事件中禁用/返回false即可。

    仅供参考,一旦有人在其中一个字段中输入了
    &
    ,您的代码就会中断。它在没有
    XMLHttpRequest
    对象的旧IE版本中也会中断。考虑使用jQuery或类似的库,并让它处理所有的Ajax事物。也值得一看。它将AJAX表单提交转换为一行程序。如果您对此有任何疑问,请不要编辑此问题,而是发布新问题。