Pergunta

Quero fazer um botão que inicie meu script PHP depois de clicar nele. Então, eu apenas faço 2 arquivos separados e tenho postagem de ação no arquivo php e depois o deixo começar? Ou há uma maneira melhor de fazer isto? Possivelmente em um documento?

Atualizar:

Bem, eu basicamente fiz um script que faria uma série de loops até que termine. Normalmente, quando visito a página, ela inicia automaticamente, então estou fazendo um botão para iniciá -lo apenas quando preciso.

Mais informações: responda a uma das perguntas: "Iniciar o script", como nele, executaria apenas o script.

Mais informações: Eu realmente não preciso passar nenhum dado do formulário de envio para o script PHP. Eu só quero que meu script corra quando aperto um botão. Eu só quero saber qual é a melhor maneira de fazer isso.

Foi útil?

Solução

Ter 2 arquivos como você sugeriu seria a solução mais fácil.

Por exemplo:

2 Solução de arquivos:

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

Solução de arquivo único:

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

Outras dicas

Você pode fazê -lo em um documento se tivesse um condicional com base nos parâmetros enviados. Por exemplo:

if (isset($_GET['secret_param'])) {
    <run script>
} else {
    <display button>
}

Eu acho que a melhor maneira de ter dois arquivos.

Sei que essa pergunta tem 5 anos, mas para qualquer pessoa que se pergunte como fazer isso sem renderizar a página principal. Esta solução usa o Editor de Dart/linguagem de script.

Você poderia ter um <object> tag que contém um data atributo. Faça o <object> 1px por 1px e depois use algo como dardo Para alterar dinamicamente o <object>'s data atribuir o que renderiza o data no objeto 1px por 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';
?>

Darscript.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');
}

Desde que você não esteja postando nenhuma informação e esteja apenas procurando executar um script, isso deve funcionar muito bem.

Basta construir o script do DART usando "Build Pub (Gereate JS)" e, em seguida, faça o upload do pacote no seu servidor.

O que exatamente você quer dizer com "inicia meu script PHP"? Que tipo de script PHP? Um para gerar uma resposta HTML para um usuário final ou que simplesmente executa algum tipo de tarefa de processamento de dados? Se você estiver familiarizado com o uso da tag e como ela interage com o PHP, precisará apenas postar no seu script PHP de destino usando um botão do tipo "submeter". Se você não está familiarizado com os formulários, dê uma olhada aqui.

Este funciona para mim:

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>

Este link pode ser útil:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top