中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP7留言板開發之Ajax異步提交的示例分析

發布時間:2020-12-18 14:13:12 來源:億速云 閱讀:184 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關PHP7留言板開發之Ajax異步提交的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

前言

這節教程算是這個專輯的重中之重吧。隨著前端技術的不斷迭代更新,網站很多功能的實現都轉移到前端去實現,2018年第一季度編程語言排名來看,JavaScript仍然是最受歡迎的編程語言。所以想要深入學習js,那么Ajax是必不可少的。

在前面課程講過js驗證,課件代碼是在老友記之PHP7留言板開發(JS驗證)基礎上改動,只需加入ajax異步操作部分即可輕松完成。

需要注意的是,這里不再詳細講解什么是XMLHttpRequest對象,為什么要用它等等,相信你再能運用的情況下再去深入了解它會印象更加深刻,這里就盡可能的少一些文字類的應試教學并能達到學會效果。

打開編輯器開始動手吧!

Ajax異步的核心部分講解
// 第一步 創建 XMLHttpRequest 對象,為了更容易理解,變量就用ajax
var ajax = new XMLHttpRequest();

// 第二步 初始化一個Ajax請求,url參數是遠程請求地址ajax.php
ajax.open('POST', url, true); // 這里用到post提交留言,所以用post方式提交給服務器
// ajax.open('GET', url, true); // get方式請求服務器

// 第三步 發送請求;如果該請求是異步模式(默認),該方法會立刻返回。
ajax.send(inputdata);

// 第四步 發送請求總該要知道有沒收到吧,這里就需要用到Ajax的事件監聽器onreadystatechange 
ajax.onreadystatechange = function(){
    // 這里判斷服務器是否有數據響應,如果有則做些你要處理的邏輯,比如提示用戶操作成功
}

上面四步驟還理解不了的話,可以認為是第一步找個朋友A發郵件,第二步給這位A朋友寫信件內容并封裝寫上地址貼郵票,第三步投遞郵件,過了一陣(當然網絡通的情況下立即有響應的),第四步收到A朋友的回信了,很開心。接下來就可以根據回信內容做事啦,比如見(網)面(約)...

好了就到這里,下面是完整代碼。

HTML+JS頁面代碼
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>留言板_科科分享</title>
        <!-- 2.新建css樣式文件并根據效果圖編寫css代碼 -->
        <link rel="stylesheet" href="feedback.css">
        <!-- 3.js表單驗證 -->
        <script type="text/javascript">
            function checkform(){
                var nickname = document.getElementsByTagName('input')[0].value; // 獲取用戶輸入的姓名
                var tel = document.getElementsByTagName('input')[1].value; // 獲取用戶輸入的聯系方式
                var content = document.getElementsByTagName('textarea')[0].value; // 獲取用戶輸入的留言內容
                // 如果沒有輸入姓名 則提示
                if(nickname == ''){
                    alert('請輸入您的姓名');
                    document.getElementsByTagName('input')[0].focus(); // 將光標定位到姓名輸入框
                    return false; // 阻止冒泡 輸入姓名后才能通過
                }
                // 如果沒有輸入聯系方式 則提示
                if(tel == ''){
                    alert('請輸入您的聯系方式');
                    document.getElementsByTagName('input')[1].focus(); // 將光標定位到聯系方式輸入框
                    return false;  // 阻止冒泡 輸入聯系方式才能通過
                }
                // 如果沒有輸入留言內容 則提示
                if(content == ''){
                    alert('請輸入您的聯系方式');
                    document.getElementsByTagName('textarea')[0].focus(); // 將光標定位到留言內容輸入框
                    return false;  // 阻止冒泡 輸入留言內容才能通過
                }
                
                // js已經拿到了用戶提交的數據,那接下來就是AJAX(頁面無刷新提交數據到服務器-異步通信)
                // 異步請求 start
                var ajax, url, inputdata;
                // 創建 XMLHttpRequest 對象
                if(window.XMLHttpRequest){
                    ajax = new XMLHttpRequest();
                }else{
                    // 兼容Internet Explorer(IE5 和 IE6)使用 ActiveX 對象
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                }
                url = 'ajax.php';
                ajax.open('POST', url, true);
                ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");  // 用POST的時候一定要有這句
                inputdata = 'nickname='+nickname+'&tel='+tel+'&content='+content;
                ajax.send(inputdata);
                // 接收服務器返回的數據
                ajax.onreadystatechange = function(){
                    // 獲取服務器響應狀態碼
                    if(ajax.readyState == 4 && ajax.status==200){
                        // 獲取服務器返回的響應返回的數據
                        var retdata = ajax.responseText;
                        if(retdata == 1){
                            alert('留言信息已提交成功!感謝您的寶貴意見。');
                        }
                    }
                }
                // 異步請求 end
                return false; // 這里是為了方式submit點擊后表單自動提交
                // document.feedback_form.submit(); // 提交用戶數據到后端action中的地址
            }
        </script>
    </head>
    <body>
        <!-- 工作區,呈現給用戶看的 -->
        <!-- 1.開始搭建腳手架 -->
        <p class="container_box">
            <p class="up">
                <h4 class="title">留言板</h4>
                <h6 class="subtitle">FEEDBACK</h6>
            </p>
            <p class="down">
                <form name="feedback_form" action="/#" method="post" onsubmit="return false;">
                    <p class="input">
                        <input type="text" class="fl" name="name" placeholder="輸入您的姓名" /> 
                        <input type="text" class="fr" name="tel" placeholder="輸入您的聯系方式" />
                    </p>
                    <textarea class="content" cols="30" rows="10" name="nr"></textarea>
                    <input type="submit" onclick="checkform()" value="提交您的留言" class="sub" />
                </form>
            </p>
        </p>
    </body>
</html>
PHP代碼(ajax.php)
<?php
include 'config.php';

// POST接收用戶提交的數據
$nickname = !empty($_POST['nickname'])? addslashes(strip_tags($_POST['nickname'])):''; // 留言人名稱
$tel = !empty($_POST['tel'])?addslashes(strip_tags($_POST['tel'])):''; // 留言人的聯系方式
$content = !empty($_POST['content'])?addslashes(strip_tags($_POST['content'])):''; // 留言內容
$time = time(); // 當前系統時間,即用戶留言時間

// 插入mysql語句
$sql = "INSERT INTO feedback (name, contact, content, addtime) VALUES ('{$nickname}', '{$tel}', '{$content}', '{$time}')";

// 立即執行mysql語句
$result = mysqli_query($mysqli, $sql); // 返回一個資源標識符,通常是數字
$insert_id = mysqli_insert_id($mysqli); // 返回數據表的自增長ID,比如新用戶注冊返回用戶ID
// echo $insert_id; // 當你在調試的時候,你會發現echo是很好的幫手。
if($insert_id > 0){
    // 如果入庫成功,這里可以處理其他想要的邏輯
    echo 1;
    exit;  // 退出程序,使其不再往下執行代碼
}
// 這是錯誤的時候返回0
echo 0;
exit;

感謝各位的閱讀!關于PHP7留言板開發之Ajax異步提交的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

政和县| 收藏| 南江县| 云龙县| 京山县| 安泽县| 且末县| 芜湖市| 彭州市| 玉龙| 盘锦市| 始兴县| 镇坪县| 姜堰市| 淮阳县| 望城县| 澄迈县| 嫩江县| 瓦房店市| 佳木斯市| 佛冈县| 淳安县| 乌拉特中旗| 南阳市| 河源市| 周宁县| 华阴市| 马山县| 呼和浩特市| 长春市| 奉节县| 肇源县| 永善县| 洪泽县| 沾化县| 霍城县| 厦门市| 巧家县| 彭阳县| 青州市| 临湘市|