web-dev-qa-db-fra.com

Un bouton pour lancer le script php, comment?

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.

14
Strawberry

Avoir 2 fichiers comme vous l'avez suggéré serait la solution la plus simple.

Par exemple:

Solution de 2 fichiers:

index.html

(.. your html ..)
<form action="script.php" method="get">
  <input type="submit" value="Run me now!">
</form>
(...)

script.php

<?php
  echo "Hello world!"; // Your code here
?>

Solution de fichier unique:

index.php

<?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
  }
?>
18
Carlos Lima

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.

1
DuckPuncher

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.

1
Myles

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 .

0
jkndrkn

Celui-ci fonctionne pour moi:

index.php

    <?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:

https://blogs.msdn.Microsoft.com/brian_swan/2010/02/08/getting-started-with-the-sql-server-driver-for-php/

0
Alireza