日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

PHP7留言板開發(fā)之 Ajax異步提交


前言

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

Ajax異步的核心部分講解

// 第一步 創(chuàng)建 XMLHttpRequest 對(duì)象,為了更容易理解,變量就用ajax
var ajax = new XMLHttpRequest();
// 第二步 初始化一個(gè)Ajax請(qǐng)求,url參數(shù)是遠(yuǎn)程請(qǐng)求地址ajax.php
ajax.open('POST', url, true); // 這里用到post提交留言,所以用post方式提交給服務(wù)器
// ajax.open('GET', url, true); // get方式請(qǐng)求服務(wù)器
// 第三步 發(fā)送請(qǐng)求;如果該請(qǐng)求是異步模式(默認(rèn)),該方法會(huì)立刻返回。
ajax.send(inputdata);
// 第四步 發(fā)送請(qǐng)求總該要知道有沒收到吧,這里就需要用到Ajax的事件監(jiān)聽器onreadystatechange 
ajax.onreadystatechange = function(){
    // 這里判斷服務(wù)器是否有數(shù)據(jù)響應(yīng),如果有則做些你要處理的邏輯,比如提示用戶操作成功
}

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

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

HTML+JS頁面代碼

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>留言板_科科分享</title>
        <!-- 2.新建css樣式文件并根據(jù)效果圖編寫css代碼 -->
        <link rel="stylesheet" href="feedback.css">
        <!-- 3.js表單驗(yàn)證 -->
        <script type="text/javascript">
            function checkform(){
                var nickname = document.getElementsByTagName('input')[0].value; // 獲取用戶輸入的姓名
                var tel = document.getElementsByTagName('input')[1].value; // 獲取用戶輸入的聯(lián)系方式
                var content = document.getElementsByTagName('textarea')[0].value; // 獲取用戶輸入的留言內(nèi)容
                // 如果沒有輸入姓名 則提示
                if(nickname == ''){
                    alert('請(qǐng)輸入您的姓名');
                    document.getElementsByTagName('input')[0].focus(); // 將光標(biāo)定位到姓名輸入框
                    return false; // 阻止冒泡 輸入姓名后才能通過
                }
                // 如果沒有輸入聯(lián)系方式 則提示
                if(tel == ''){
                    alert('請(qǐng)輸入您的聯(lián)系方式');
                    document.getElementsByTagName('input')[1].focus(); // 將光標(biāo)定位到聯(lián)系方式輸入框
                    return false;  // 阻止冒泡 輸入聯(lián)系方式才能通過
                }
                // 如果沒有輸入留言內(nèi)容 則提示
                if(content == ''){
                    alert('請(qǐng)輸入您的聯(lián)系方式');
                    document.getElementsByTagName('textarea')[0].focus(); // 將光標(biāo)定位到留言內(nèi)容輸入框
                    return false;  // 阻止冒泡 輸入留言內(nèi)容才能通過
                }
                // js已經(jīng)拿到了用戶提交的數(shù)據(jù),那接下來就是AJAX(頁面無刷新提交數(shù)據(jù)到服務(wù)器-異步通信)
                // 異步請(qǐng)求 start
                var ajax, url, inputdata;
                // 創(chuàng)建 XMLHttpRequest 對(duì)象
                if(window.XMLHttpRequest){
                    ajax = new XMLHttpRequest();
                }else{
                    // 兼容Internet Explorer(IE5 和 IE6)使用 ActiveX 對(duì)象
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                }
                url = 'ajax.php';
                ajax.open('POST', url, true);
                ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");  // 用POST的時(shí)候一定要有這句
                inputdata = 'nickname='+nickname+'&tel='+tel+'&content='+content;
                ajax.send(inputdata);
                // 接收服務(wù)器返回的數(shù)據(jù)
                ajax.onreadystatechange = function(){
                    // 獲取服務(wù)器響應(yīng)狀態(tài)碼
                    if(ajax.readyState == 4 && ajax.status==200){
                        // 獲取服務(wù)器返回的響應(yīng)返回的數(shù)據(jù)
                        var retdata = ajax.responseText;
                        if(retdata == 1){
                            alert('留言信息已提交成功!感謝您的寶貴意見。');
                        }
                    }
                }
                // 異步請(qǐng)求 end
                return false; // 這里是為了方式submit點(diǎn)擊后表單自動(dòng)提交
                // document.feedback_form.submit(); // 提交用戶數(shù)據(jù)到后端action中的地址
            }
        </script>
    </head>
    <body>
        <!-- 工作區(qū),呈現(xiàn)給用戶看的 -->
        <!-- 1.開始搭建腳手架 -->
        <p class="container_box">
            <p class="up">
                <h3 class="title">留言板</h3>
                <h5 class="subtitle">FEEDBACK</h5>
            </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="輸入您的聯(lián)系方式" />
                    </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接收用戶提交的數(shù)據(jù)
$nickname = !empty($_POST['nickname'])? addslashes(strip_tags($_POST['nickname'])):''; // 留言人名稱
$tel = !empty($_POST['tel'])?addslashes(strip_tags($_POST['tel'])):''; // 留言人的聯(lián)系方式
$content = !empty($_POST['content'])?addslashes(strip_tags($_POST['content'])):''; // 留言內(nèi)容
$time = time(); // 當(dāng)前系統(tǒng)時(shí)間,即用戶留言時(shí)間
// 插入mysql語句
$sql = "INSERT INTO feedback (name, contact, content, addtime) VALUES ('{$nickname}', '{$tel}', '{$content}', '{$time}')";
// 立即執(zhí)行mysql語句
$result = mysqli_query($mysqli, $sql); // 返回一個(gè)資源標(biāo)識(shí)符,通常是數(shù)字
$insert_id = mysqli_insert_id($mysqli); // 返回?cái)?shù)據(jù)表的自增長ID,比如新用戶注冊(cè)返回用戶ID
// echo $insert_id; // 當(dāng)你在調(diào)試的時(shí)候,你會(huì)發(fā)現(xiàn)echo是很好的幫手。
if($insert_id > 0){
    // 如果入庫成功,這里可以處理其他想要的邏輯
    echo 1;
    exit;  // 退出程序,使其不再往下執(zhí)行代碼
}
// 這是錯(cuò)誤的時(shí)候返回0
echo 0;
exit;

記得動(dòng)手練習(xí)哦!歡迎下面評(píng)論區(qū)涂鴉!~


分享到:
標(biāo)簽:PHP7 留言板開發(fā) Ajax異步提交
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定