Je veux faire un bouton qui commence mon script php après que je clique dessus. Donc, est-ce que je crée 2 fichiers séparés et que l'action post est insérée dans le fichier php, puis je la laisse démarrer? ou y a-t-il une meilleure façon de faire cela? Peut-être dans un seul document?
Mettre à jour:
Eh bien, j'ai essentiellement créé un script qui ferait une série de boucles jusqu'à ce qu'il soit terminé. Donc, généralement, lorsque je visite la page, celle-ci démarre automatiquement. Je crée donc un bouton pour la démarrer uniquement lorsque j'en ai besoin.
Plus d'infos: Répondez à l'une des questions, "démarrer le script" comme s'il n'exécutait que le script.
Plus d'infos: Je n'ai vraiment pas besoin de transmettre de données du formulaire de soumission au script php. Je veux juste que mon script soit exécuté lorsque je clique sur un bouton. Je veux juste savoir quelle est la meilleure façon de le faire.
Avoir 2 fichiers comme vous l'avez suggéré serait la solution la plus simple.
Par exemple:
(.. your html ..)
<form action="script.php" method="get">
<input type="submit" value="Run me now!">
</form>
(...)
<?php
echo "Hello world!"; // Your code here
?>
<?php
if (!empty($_GET['act'])) {
echo "Hello world!"; //Your code here
} else {
?>
(.. your html ..)
<form action="index.php" method="get">
<input type="hidden" name="act" value="run">
<input type="submit" value="Run me now!">
</form>
<?php
}
?>
Je sais que cette question a 5 ans, mais pour tous ceux qui se demandent comment faire cela sans refaire le rendu de la page principale. Cette solution utilise l'éditeur de fléchettes / langage de script.
Vous pourriez avoir une balise <object>
qui contient un attribut data
. Faites le <object>
1px de 1px, puis utilisez quelque chose comme Dart pour modifier dynamiquement l'attribut data
de <object>
qui restitue le data
dans l'objet 1px par 1px.
Script HTML:
<object id="external_source" type="text/html" data="" width="1px" height="1px">
</object>
<button id="button1" type="button">Start Script</button>
<script async type="application/Dart" src="dartScript.Dart"></script>
<script async src="packages/browser/Dart.js"></script>
someScript.php:
<?php
echo 'hello world';
?>
dartScript.Dart:
import 'Dart:html';
InputElement button1;
ObjectElement externalSource;
void main() {
button1 = querySelector('#button1')
..onClick.listen(runExternalSource);
externalSource = querySelector('#external_source');
}
void runExternalSource(Event e) {
externalSource.setAttribute('data', 'someScript.php');
}
Tant que vous ne publiez aucune information et que vous souhaitez exécuter un script, cela devrait fonctionner correctement.
Il suffit de construire le script Dart en utilisant "pub Build (generate JS)", puis de télécharger le package sur votre serveur.
Vous pouvez le faire dans un seul document si vous aviez une condition basée sur les paramètres envoyés. Par exemple:
if (isset($_GET['secret_param'])) {
<run script>
} else {
<display button>
}
Je pense que le meilleur moyen est d’avoir deux fichiers.
Qu'entendez-vous exactement par "commence mon script php"? Quel genre de script PHP? Un pour générer une réponse HTML pour un utilisateur final ou un autre qui effectue simplement une sorte de tâche de traitement de données? Si vous connaissez bien l'utilisation de la balise et son interaction avec PHP, il vous suffira d'ajouter POST à votre script cible PHP à l'aide d'un bouton de type "submit". Si vous n'êtes pas familier avec les formulaires, jetez un oeil ici .
Celui-ci fonctionne pour moi:
<?php
if(isset($_GET['action']))
{
//your code
echo 'Welcome';
}
?>
<form id="frm" method="post" action="?action" >
<input type="submit" value="Submit" id="submit" />
</form>
Ce lien peut être utile: