Heim >Backend-Entwicklung >PHP-Problem >Wie HTML mit PHP-Daten interagiert

Wie HTML mit PHP-Daten interagiert

尚
Original
2019-10-29 15:43:054020Durchsuche

Wie HTML mit PHP-Daten interagiert

Dateninteraktion zwischen PHP-Dateien und HTML-Seiten

HTML-Senden (Senden per POST)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
    <div class=&#39;search-choose&#39; id=&#39;search_choose&#39;>
        <ul> 
            <li id=&#39;search_1&#39; class=&#39;search-selected&#39;><a href=&#39;#&#39;>dog</a></li>
            <li id=&#39;search_2&#39;><a href=&#39;#&#39;>cat</a></li>
        </ul>
    </div>
    
    <script type=&#39;text/javascript&#39;>
      searchArray = document.getElementsByTagName(&#39;li&#39;);//获取名字为’li’的所有标签项并存入数组
      var writeArray = [];
      for(var i = 0;i<searchArray.length;i++){
          writeArray[i] = searchArray[i].innerText;//获取标签内容writeArray = [&#39;dog&#39;,&#39;cat&#39;];
      }
    
      //使用POST将数组writeArray发送到php文件servertest.php
      var request = new XMLHttpRequest();
      request.open("POST", "servertest.php");
      var q = "data=" + writeArray;//  q="name"+ value;
      //发送内容体由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("发生错误:" + request.status);
              }
          } 
      }
    </script>
</body>
</html>

Hinweis: Tastenoperationen

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页面POST发送内容后,php通过超全局变量 $_GET 和 $_POST收集

PHP-Empfang (erfasst mit superglobalen Variablen $_GET und $_POST)

<?php
//设置页面内容是html编码格式是utf-8
header("Content-Type: text/plain;charset=utf-8"); 
//判断如果是get请求,则执行getMethod();;如果是POST请求,则执行postMethod()。
//$_SERVER是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
    postMethod();
}
function searchShow(){    
}
function postMethod(){
    $filename = &#39;save.txt&#39;;
//使用超全局变量 $_GET 和 $_POST收集name对应的value,如下
    $searchWrite = $_POST["data"];
//将获取的HTML返回内容$searchWrite写入文档save.txt
    file_put_contents($filename, $searchWrite);
    $content = file_get_contents($filename);
    echo $content;
}

Hinweis: Schlüsseloperationen

searchWrite=searchWrite=_POST["data"];

Verwenden Sie superglobale Variablen $ _POST sammelt den dem Namen entsprechenden Wert und fügt ihn in $ searchWrite ein, sodass die von der HTML-Seite gesendeten Daten abgerufen werden können, die verwendet werden können

Die HTML-Seite erhält die PHP-Variable über JSON

php Send (Datenpaare im JSON-Format über Echo zurückgeben)

<?php
header(&#39;Access-Control-Allow-Origin:*&#39;);
header(&#39;Access-Control-Allow-Methods:POST,GET&#39;);
header(&#39;Access-Control-Allow-Credentials:true&#39;); 
header("Content-Type: application/json;charset=utf-8"); 
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
    postMethod();
}
function getMethod(){    
    $filename = &#39;search_save.txt&#39;;//假设文件内容为dog,cat,pig,人
    if (file_exists($filename)) {
        $content = file_get_contents($filename);
        $pattern = &#39;/[\x{4e00}-\x{9fa5}_a-zA-Z0-9]+/u&#39;;
        //[\x{4e00}-\x{9fa5}_a-zA-Z0-9]匹配中文、下划线、字母、数字
        preg_match_all($pattern, $content, $matches);
        $searchRead = $matches[0];//通过正则表达式提取存储列表到$searchRead数组[&#39;dog&#39;,&#39;cat&#39;,&#39;pig&#39;,&#39;人&#39;]
        $defaultSearch = $searchRead[0];
        $result = &#39;{"success":false,"defaultSearch":""}&#39;;
        if($_GET["data"]){
            $result = &#39;{"success":true,"defaultSearch":"&#39;.$defaultSearch.&#39;"}&#39;;
        }
    }
    echo $result;//echo返回json格式化数据对{"success":true,"defaultSearch":"&#39;.$defaultSearch.&#39;"}
 } 
functionpostMethod(){
}

Hinweis: Tastenoperationen

$result = &#39;{"success":true,"defaultSearch":"&#39;.$defaultSearch.&#39;"}&#39;;//将待返回内容改为json格式
   echo $result;//HTML页面的json部分将从echo的输出获取json格式化数据对,因此echo输出内容需要为json格式

HTML-Empfang (Datenpaare im JSON-Format empfangen, die von PHP Echo zurückgegeben werden durch GET)

<script type=&#39;text/javascript&#39;>
        $(document).ready(function(){ 
            $.ajax({ 
                type: "GET",     
                url: "default_search.php?data=" + value,//value为HTML向url发送的内容体,在php中可以通过超全局变量收集
                dataType: "json",
               //data为php使用echo返回的json格式的数据对,通过data.name的形式即可以使用name对应的value
           success: function(data) {
            if (data.success) { 
              alert(data.defaultSearch);            
            } 
          },
                error: function(jqXHR){     
                   alert("发生错误:" + jqXHR.status);  
                },     
            });
        });
</script>

Schlüsseloperationen:

$.ajax({
   type: "GET",
        url: "default_search.php?data=" + "searchArray",
        dataType: "json",
        success: function(data) {
       If(data.success){alert(data.defaultSearch);}
//data为php使用echo输出的json格式的数据对,通过data.name的形式即可以使用name对应的value
         },
         error: function(jqXHR){     
           alert("发生错误:" + jqXHR.status);  
         },     
    });
});

Das obige ist der detaillierte Inhalt vonWie HTML mit PHP-Daten interagiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn