Я хочу автоматически отображать (без обновления страницы) кнопку, если, 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
Как вы уже отметили, в 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, так как вы можете интегрировать его в существующие проекты без необходимости переписывать весь интерфейс.
PHP-скрипт может быть выполнен только на сервере, поэтому без обновления вы не сможете получить PHP-код.
Поэтому, когда вы получаете страницу в первый раз, $diffex
будет иметь какое-то значение и, исходя из этого, вы можете получить кнопку на странице или нет.
Теперь, пока вы не обновите страницу, $diffex
переменная не будет обновлена с новым значением (если изменено).
Таким образом, вы должны либо тренироваться с использованием JavaScript или JQuery.