PHP - возвращает true или false в зависимости от того, на какую кнопку нажал пользователь

0

Я пытаюсь сделать PHP-версию команды подтверждения JavaScript():

<!DOCTYPE html>
<?php
    function confirm($title, $text) {
        $html = '<div id="alert" style="background-color:white; text-align:center; height:400px; width:300px; color:black; position:fixed; top: 0; left:50%; margin-left:-150px; border:1px solid black; box-shadow: 5px 5px 10px gray;">';
        $html = $html . '<h1 style="background-color:red; border-radius: 15px;">'. $title . '</h1>';
        $html = $html . '<span style="font-size: 20px;">The page at ' . $_SERVER['SERVER_NAME'] . ' says...</span><br><br>' . $text;
        $html = $html . '<br><br><button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="this.parentNode.style.display=\'none\'">OK</button>';
        $html = $html . '<button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="this.parentNode.style.display=\'none\'">Cancel</button>';
        echo $html;
    }
?>

Как вернуть true или false в зависимости от того, какая кнопка нажата пользователем?

  • 0
    Это не может быть возвращено одним php без отправки form+button type=submit или вызова Ajax javascript
  • 0
    Ваша функция показывает некоторый HTML-код. Почему он должен возвращать истину или ложь?
Показать ещё 1 комментарий
Теги:
user-defined-functions

1 ответ

0

там еще меньше путаницы, чтобы сделать ваш html

$html = '<div id="alert" style="background-color:white; text-align:center; height:400px; width:300px; color:black; position:fixed; top: 0; left:50%; margin-left:-150px; border:1px solid black; box-shadow: 5px 5px 10px gray;">';
$html.= '<h1 style="background-color:red; border-radius: 15px;">'. $title . '</h1>';
$html.= '<span style="font-size: 20px;">The page at ' . $_SERVER['SERVER_NAME'] . ' says...</span><br><br>' . $text;
$html.= '<br><br><button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="this.parentNode.style.display=\'none\'">OK</button>';
$html.= '<button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="this.parentNode.style.display=\'none\'">Cancel</button>';
echo $html;  

EDIT - чтобы получить значение от пользователя в php, вы должны либо использовать ajax, либо форму, либо протокол _GET. Обратите внимание, что один раз на экране ваш html-код больше не связан с каким-либо php-скриптом. Ваша функция php выполняется во время вызова, а функции javascript выполняются на стороне клиента. вы не можете вызвать функцию со страницы и использовать возвращаемое значение в своих php-функциях. то, что вы можете сделать, это перезагрузить страницу при нажатии кнопки с желаемым значением в вашем URL-адресе. обратите внимание на атрибут onclick.

<button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="window.location.href='yourscript.php?confirm=false'">Cancel</button>
<button type="button" style="border-radius:25px; height:50px; width:100px; background-color:lightGray; border:1px solid black;" onclick="window.location.href='yourscript.php?confirm=true'">OK</button>

Кроме того, ваши кнопки могут быть заменены якорями (например, они могут иметь тот же стиль, что и ваши кнопки):

<a href="yourscript.php?confirm=false">cancel</a>
<a href="yourscript.php?confirm=true">OK</a>

с обоими вы можете получить такое значение в вашем php-скрипте:

$confirm = (isset($_GET['confirm']) ? $_GET['confirm'] : '');
  • 0
    Я просто хочу получить возвращаемое значение в PHP. Если они нажали «ОК», верните true. Если они нажали «Отмена», верните false.
  • 0
    Как насчет просто выйти из режима php, а не повторять весь этот HTML? Тогда вам не нужны кавычки или обратная косая черта, и вы можете просто вызывать php для отображения переменных ... Как язык шаблонов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню