溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

html與php數(shù)據(jù)交互的方法

發(fā)布時(shí)間:2020-08-19 14:01:33 來(lái)源:億速云 閱讀:161 作者:小新 欄目:編程語(yǔ)言

html與php數(shù)據(jù)交互的方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

php文件與HTML頁(yè)面的數(shù)據(jù)交互

HTML發(fā)送(使用POST發(fā)送)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無(wú)標(biāo)題文檔</title>
</head>

<body>
    <div class='search-choose' id='search_choose'>
        <ul> 
            <li id='search_1' class='search-selected'><a href='#'>dog</a></li>
            <li id='search_2'><a href='#'>cat</a></li>
        </ul>
    </div>
    
    <script type='text/javascript'>
      searchArray = document.getElementsByTagName('li');//獲取名字為’li’的所有標(biāo)簽項(xiàng)并存入數(shù)組
      var writeArray = [];
      for(var i = 0;i<searchArray.length;i++){
          writeArray[i] = searchArray[i].innerText;//獲取標(biāo)簽內(nèi)容writeArray = ['dog','cat'];
      }
    
      //使用POST將數(shù)組writeArray發(fā)送到php文件servertest.php
      var request = new XMLHttpRequest();
      request.open("POST", "servertest.php");
      var q = "data=" + writeArray;//  q="name"+ value;
      //發(fā)送內(nèi)容體由name+value組成,此處name為data,value為writeArray
      request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      request.send(q);
      request.onreadystatechange = function() {
          if (request.readyState===4) {
          if (request.status===200) { 
          } else {
                  alert("發(fā)生錯(cuò)誤:" + request.status);
              }
          } 
      }
    </script>
</body>
</html>

注:關(guān)鍵操作

var request = new XMLHttpRequest();
request.open("POST", "servertest.php");
var q = "data=" + writeArray;// 生成信息體q = “name “+ value
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(q);
//HTML頁(yè)面POST發(fā)送內(nèi)容后,php通過(guò)超全局變量 $_GET 和 $_POST收集

php接收(使用超全局變量$_GET 和 $_POST收集)

<?php
//設(shè)置頁(yè)面內(nèi)容是html編碼格式是utf-8
header("Content-Type: text/plain;charset=utf-8"); 
//判斷如果是get請(qǐng)求,則執(zhí)行g(shù)etMethod();;如果是POST請(qǐng)求,則執(zhí)行postMethod()。
//$_SERVER是一個(gè)超全局變量,在一個(gè)腳本的全部作用域中都可用,不用使用global關(guān)鍵字
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
    postMethod();
}
function searchShow(){    
}
function postMethod(){
    $filename = 'save.txt';
//使用超全局變量 $_GET 和 $_POST收集name對(duì)應(yīng)的value,如下
    $searchWrite = $_POST["data"];
//將獲取的HTML返回內(nèi)容$searchWrite寫(xiě)入文檔save.txt
    file_put_contents($filename, $searchWrite);
    $content = file_get_contents($filename);
    echo $content;
}

注:關(guān)鍵操作

searchWrite=searchWrite=_POST["data"];

使用超全局變量 $_POST收集name對(duì)應(yīng)的value放入$searchWrite,于是得到了HTML頁(yè)面發(fā)送的數(shù)據(jù),可以用了

HTML頁(yè)面通過(guò)json獲取php的變量

php發(fā)送(通過(guò)echo返回json格式的數(shù)據(jù)對(duì))

<?php
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET');
header('Access-Control-Allow-Credentials:true'); 
header("Content-Type: application/json;charset=utf-8"); 
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
    postMethod();
}
function getMethod(){    
    $filename = 'search_save.txt';//假設(shè)文件內(nèi)容為dog,cat,pig,人
    if (file_exists($filename)) {
        $content = file_get_contents($filename);
        $pattern = '/[\x{4e00}-\x{9fa5}_a-zA-Z0-9]+/u';
        //[\x{4e00}-\x{9fa5}_a-zA-Z0-9]匹配中文、下劃線、字母、數(shù)字
        preg_match_all($pattern, $content, $matches);
        $searchRead = $matches[0];//通過(guò)正則表達(dá)式提取存儲(chǔ)列表到$searchRead數(shù)組['dog','cat','pig','人']
        $defaultSearch = $searchRead[0];
        $result = '{"success":false,"defaultSearch":""}';
        if($_GET["data"]){
            $result = '{"success":true,"defaultSearch":"'.$defaultSearch.'"}';
        }
    }
    echo $result;//echo返回json格式化數(shù)據(jù)對(duì){"success":true,"defaultSearch":"'.$defaultSearch.'"}
 } 
functionpostMethod(){
}

注:關(guān)鍵操作

$result = '{"success":true,"defaultSearch":"'.$defaultSearch.'"}';//將待返回內(nèi)容改為json格式
   echo $result;//HTML頁(yè)面的json部分將從echo的輸出獲取json格式化數(shù)據(jù)對(duì),因此echo輸出內(nèi)容需要為json格式

HTML接收(通過(guò)GET接收php echo返回的json格式的數(shù)據(jù)對(duì))

<script type='text/javascript'>
        $(document).ready(function(){ 
            $.ajax({ 
                type: "GET",     
                url: "default_search.php?data=" + value,//value為HTML向url發(fā)送的內(nèi)容體,在php中可以通過(guò)超全局變量收集
                dataType: "json",
               //data為php使用echo返回的json格式的數(shù)據(jù)對(duì),通過(guò)data.name的形式即可以使用name對(duì)應(yīng)的value
           success: function(data) {
            if (data.success) { 
              alert(data.defaultSearch);            
            } 
          },
                error: function(jqXHR){     
                   alert("發(fā)生錯(cuò)誤:" + jqXHR.status);  
                },     
            });
        });
</script>

關(guān)鍵操作:

$.ajax({
   type: "GET",
        url: "default_search.php?data=" + "searchArray",
        dataType: "json",
        success: function(data) {
       If(data.success){alert(data.defaultSearch);}
//data為php使用echo輸出的json格式的數(shù)據(jù)對(duì),通過(guò)data.name的形式即可以使用name對(duì)應(yīng)的value
         },
         error: function(jqXHR){     
           alert("發(fā)生錯(cuò)誤:" + jqXHR.status);  
         },     
    });
});

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)html與php數(shù)據(jù)交互的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI