Maison > développement back-end > Problème PHP > Comment le HTML interagit avec les données PHP

Comment le HTML interagit avec les données PHP

Libérer: 2023-02-27 22:52:01
original
3990 Les gens l'ont consulté

Comment le HTML interagit avec les données PHP

Interaction des données entre les fichiers php et les pages HTML

Envoi HTML (envoi via 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>
Copier après la connexion

Remarque : opérations clés

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收集
Copier après la connexion

Réception PHP (collectée à l'aide des variables super globales $_GET et $_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;
}
Copier après la connexion

Remarque : opérations clés

searchWrite=searchWrite=_POST["data"];
Copier après la connexion

Utiliser des variables super globales $ _POST collecte la valeur correspondant au nom et la met dans $searchWrite, ainsi les données envoyées par la page HTML sont obtenues, qui peuvent être utilisées

La page HTML obtient la variable php via json

Envoyer php (retourner les paires de données au format json via echo)

<?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(){
}
Copier après la connexion

Remarque : Opérations clés

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

Réception HTML (recevoir des paires de données au format json renvoyées par php echo via 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>
Copier après la connexion

Opérations clés :

$.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);  
         },     
    });
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal