Как автоматически отобразить кнопку, если условие в PHP верно?

Я хочу автоматически отображать (без обновления страницы) кнопку, если, IF состояние в PHP правда.

Я старался:

<?php if($diffex >= "90"){  ?>
<button class="btn btn-large btn-primary" type="submit" style="float:right;" name="btn-resend">
Resend OTP
</button>
<?php }  ?>

Но приведенный выше код требует обновления страницы, и я хочу, чтобы она не обновлялась.

мой $diffex рассчитывается по формуле:

<?php
$eotd="";
$otd="";
if(isset($_GET['od'])){
$eotd = $_GET['od'];
$otd = base64_decode($eotd);
}
date_default_timezone_set('Asia/Calcutta');
$cdate = date('Y-m-d H:i:s ', time());
$scdate = strtotime($cdate);
$dscdate = base64_encode($cdate);
$deotd = strtotime($otd);
$diffex = $scdate - $deotd;
?>

На самом деле, мне нужно это для отображения Resend Option если the current time больше времени в URL от 90s

0

Решение

Как вы уже отметили, в PHP нет способа сделать это на стороне сервера. Вам потребуется JavaScript, работающий на стороне клиента, чтобы обновлять DOM всякий раз, когда кнопка должна отображаться или скрываться.

На самом простом уровне, чтобы выполнить то, что вы просите, вы, вероятно, в конечном итоге отправите запросы AJAX в скрипт PHP, который будет отвечать на ваш клиентский JavaScript в JSON. Когда у вас есть эти данные, вы можете обновить представление оттуда.

Пример:

check_diffex.php

<?php

header('Content-Type: application/json');

// You would calculate a real value here

echo json_encode([
'diffex' => 101
]);

JavaScript

var checkState = function(){
jQuery.ajax({
url: '/check_diffex.php'
}).done(function(data){
var button = jQuery("#myButton");
if(data.diffex >= 90) {
button.show();
} else {
button.hide();
}
});

}

checkState();
setInterval(checkState, 10);

Сложная часть с чем-то вроде родного JavaScript и jQuery решает, как структурировать ваш код, который проверяет, что diffex >= 90 с остальной частью вашего приложения. Многие быстрые и грязные реализации быстро превратятся в головную боль, даже для самых простых проверок «если это, то это».


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

Я настоятельно рекомендую вам взглянуть на Vue, так как вы можете интегрировать его в существующие проекты без необходимости переписывать весь интерфейс.

2

Другие решения

PHP-скрипт может быть выполнен только на сервере, поэтому без обновления вы не сможете получить PHP-код.
Поэтому, когда вы получаете страницу в первый раз, $diffex будет иметь какое-то значение и, исходя из этого, вы можете получить кнопку на странице или нет.

Теперь, пока вы не обновите страницу, $diffex переменная не будет обновлена ​​с новым значением (если изменено).

Таким образом, вы должны либо тренироваться с использованием JavaScript или JQuery.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector