Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon d'exécuter un script PHP sans sauter la page

Explication détaillée de la façon d'exécuter un script PHP sans sauter la page

PHPz
PHPzoriginal
2023-03-29 11:31:091046parcourir

Dans le développement Web, nous devons souvent utiliser des scripts PHP pour implémenter certaines fonctions, telles que la vérification de la connexion des utilisateurs, la soumission des données de formulaire, etc. Cependant, lors de l'exécution de ces scripts PHP, des sauts de page se produiront souvent, ce qui n'est pas convivial pour l'expérience utilisateur et affectera également les performances du site Web. Alors, comment puis-je exécuter un script PHP sans accéder à la page ? Cet article vous présentera plusieurs façons d’y parvenir.

1. Utiliser la technologie Ajax

La technologie Ajax peut envoyer des requêtes au serveur de manière asynchrone et mettre à jour le contenu de la page sans actualiser la page. Par conséquent, la technologie Ajax peut être utilisée pour exécuter des scripts PHP sans passer directement à la page. La méthode de fonctionnement spécifique est la suivante :

  1. Introduction de la bibliothèque jQuery dans la page HTML :
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  1. Écriture du code Ajax :
$.ajax({
    url: 'test.php',  // PHP脚本的URL地址
    type: 'post',  // 请求方式
    data: {name: 'John', age: 18},  // 发送给服务器的数据
    success: function(response){  
        // 成功接收到服务器的响应后执行的代码 
        alert(response);  // 显示服务器返回的数据
    }
});

Dans cet exemple, nous avons envoyé une requête POST au script PHP nommé test.php , Parallèlement, deux paramètres (nom et âge) sont transmis au serveur. Si le serveur traite avec succès la requête, il renverra certaines données, que nous pourrons obtenir dans la fonction de rappel Ajax.

2. Utilisez la balise iframe

La balise iframe peut être intégrée dans une autre page HTML. Nous pouvons intégrer la page qui exécute le script PHP dans une iframe. Lorsque le script PHP est exécuté, les résultats de l'exécution sont obtenus via JavaScript. La méthode de fonctionnement spécifique est la suivante :

  1. Ajoutez une balise iframe à la page HTML :
<iframe id="php-process" name="php-process" style="display:none;"></iframe>
  1. Ajoutez un formulaire à la page HTML :
<form id="php-form" method="post" action="test.php" target="php-process">
    <!-- 在这里添加需要传递给PHP脚本的参数 -->
    <input type="hidden" name="name" value="John" />
    <input type="hidden" name="age" value="18" />
</form>
  1. Utilisez JavaScript pour soumettre le formulaire et recevoir les résultats d'exécution :
function submitForm(){
    document.getElementById("php-form").submit();  // 提交form表单
    var iframe = document.getElementById("php-process");
    iframe.onload = function(){
        // PHP脚本执行完毕后执行的代码
        alert(iframe.contentWindow.document.body.innerHTML);  // 获取执行结果
    }
}

Ici, nous définissons une fonction submitForm Lorsque cette fonction est appelée, le formulaire sera automatiquement soumis et le résultat de l'exécution sera obtenu après le chargement de l'iframe. Il convient de noter que l'attribut display de l'iframe doit être défini sur none, sinon cela affectera la mise en page de la page.

3. Utilisez l'objet XMLHttpRequest

XMLHttpRequest est un objet JavaScript utilisé pour envoyer des données entre le navigateur et le serveur. Vous pouvez utiliser XMLHttpRequest pour envoyer une requête au serveur et obtenir les résultats de l'exécution, puis mettre à jour le contenu de la page sans actualiser la page. La méthode de fonctionnement spécifique est la suivante :

  1. Créer un objet XMLHttpRequest :
var xmlhttp;
if (window.XMLHttpRequest){  
    // code for IE7+, Firefox, Chrome, Opera, Safari  
    xmlhttp = new XMLHttpRequest();  
}
else{  
    // code for IE6, IE5  
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
}
  1. Envoyer une requête au serveur :
xmlhttp.open("POST","test.php",true);  // 向test.php发送一个POST请求
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");  // 设置请求头
xmlhttp.send("name=John&age=18");  // 发送请求的数据

Ici, nous avons utilisé une requête POST et passé deux paramètres (nom et âge) au serveur. Il convient de noter que nous devons également définir l'en-tête de la requête pour garantir que le serveur puisse analyser correctement les données envoyées.

  1. Recevoir la réponse du serveur :
xmlhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        // 成功接收到服务器的响应后执行的代码
        alert(this.responseText);  // 显示服务器返回的数据
    }
}

Ici, nous utilisons une fonction de rappel pour recevoir la réponse du serveur. Lorsque readyState vaut 4 et status est 200, cela signifie que le serveur a renvoyé des données de réponse. Nous pouvons obtenir les données dans la fonction de rappel et les afficher sur la page.

Résumé

Vous trouverez ci-dessus plusieurs façons d'exécuter des scripts PHP sans passer directement à la page. Il convient de noter que pour certaines opérations impliquant des informations sensibles telles que les comptes d'utilisateurs et les mots de passe, des mesures plus sécurisées devraient être adoptées pour protéger les informations des utilisateurs. Par exemple, ajoutez un mécanisme de vérification de sécurité à un script PHP afin que seuls les utilisateurs authentifiés puissent exécuter le script.

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!

Déclaration:
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