Кнопка запуска PHP скрипт, как?

Я хочу сделать кнопку, которая запускает мой php script после того, как я нажму. Так что я просто делаю 2 отдельных файла и получаю сообщение о действии в файл php, а затем разрешаю ему запускать? или есть лучший способ сделать это? Возможно, в одном документе?

Update:

Ну, я в основном сделал script, который сделал бы серию циклов, пока не закончит. Поэтому обычно, когда я посещаю страницу, она автоматически запускается, поэтому я делаю кнопку, чтобы начать ее, только когда мне это нужно.

Дополнительная информация: ответьте на один из вопросов, "начиная с script", как в нем будет выполняться только script.

Дополнительная информация: Мне действительно не нужно передавать какие-либо данные из формы отправки на php script. Я просто хочу, чтобы мой script запускался, когда я нажал кнопку. Я просто хочу знать, что это лучший способ сделать это.

Ответы

Ответ 1

Имея 2 файла, как вы сказали, было бы самым простым решением.

Например:

2 файла:

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

Решение для одного файла:

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

Ответ 2

Вы можете сделать это в одном документе, если у вас есть условие на основе переданных параметров. Например:

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

Я думаю, что лучший способ состоит в том, чтобы иметь два файла.

Ответ 3

Я знаю, что этот вопрос 5 лет, но для кого-то интересно, как это сделать без повторной рендеринга главной страницы. В этом решении используется редактор dart/скриптовый язык.

У вас может быть тэг <object>, который содержит атрибут data. Сделайте <object> 1px на 1px, а затем используйте что-то вроде dart для динамического изменения атрибута <object> data, который повторно отображает data в объекте 1px на 1px.

HTML Script:

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

Пока вы не публикуете какую-либо информацию, и вы просто хотите запустить script, это должно работать нормально.

Просто создайте дротик script, используя "pub Build (сгенерировать JS)", а затем загрузите пакет на свой сервер.

Ответ 4

Что именно вы подразумеваете под "запускает мой php script"? Что такое PHP скрипт? Один для генерации HTML-ответа для конечного пользователя, или тот, который просто выполняет какую-то задачу обработки данных? Если вы знакомы с использованием тега и каким образом он взаимодействует с PHP, тогда вам нужно будет только POST для вашего целевого PHP скрипт с помощью кнопки типа "submit". Если вы не знакомы с формами, посмотрите здесь.