0

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

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

但我有几个问题:

  1. 如果浏览器不支持javascript怎么办。有没有办法仍然发送消息?
  2. 提交触发 ajax 发布功能。在进入 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>
    

    联系表

    文本

        <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>
    

4

3 回答 3

2

如果浏览器不支持javascript怎么办。有没有办法仍然发送消息?

如果您正确构建它,如果客户端中的 JavaScript 不可用,表单将正常提交数据。渐进式增强,应该始终是 JavaScript 的使用方式。

提交触发 ajax 发布功能。在进入 php 文件(客户端)之前添加 jquery 验证的最佳方法是什么

在提交之前使用submit事件捕获表单数据。

于 2012-09-14T00:04:41.840 回答
0

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

于 2012-09-14T00:03:46.223 回答
0

你为什么不使用jquery?只需让<form>标签发送数据并在所述表单的 submit() 事件中禁用/返回 false。

于 2012-09-14T00:05:01.263 回答