Кнопка запуска 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". Если вы не знакомы с формами, посмотрите здесь.
Ответ 5
Это работает для меня:
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>
Эта ссылка может быть полезна:
https://blogs.msdn.microsoft.com/brian_swan/2010/02/08/getting-started-with-the-sql-server-driver-for-php/