функция PHP при загрузке страницы

0

У меня есть 2 функции, которые делают ссылки меню активными/неактивными:

function disableCtrl() {
    echo 'style="background: #999999;" onclick="return false;"';
}
function enableCtrl() {
    echo ' ';
}

Я использую их следующим образом:

<li><a href="#" <?php if (@$_POST['submit']){disableCtrl();} if (@$_GET['guest'] == "add") {enableCtrl();} ?> >MenuButton</a></span></li>

Единственная проблема, с которой я столкнулся, заключается в том, что ссылки по умолчанию должны быть отключены по умолчанию (при загрузке страницы).

Когда я попытался написать <?php disableCtrl(); if (@$_POST['submit'])... <?php disableCtrl(); if (@$_POST['submit'])..., кнопка стала отключенной.

Есть ли способ заставить его работать, может быть, с JavaScript или что-то еще?

Теги:

3 ответа

0
Лучший ответ

вам нужно поставить "гостевой" чек, как и режим по умолчанию (отключен), как и еще.

   <li><a href="#" <?php if ($_GET['guest']== "add"){enableCtrl();} else {disableCtrl();} ?>>MenuButton</a></li>

Или с ternairy (= короткий, если /else-> [условие? IfTrue: ifFalse])

<li><a href="#" <?php $_GET['guest']=="add" ? enableCtrl() : disableCtrl() ?>>MenuButton</a></li>

В сочетании с отключенными (что сделано для этой точной ситуации):

<li><a href="#" <?=($_GET['guest']=="add" ? 'disabled="disabled"' : '')?>>MenuButton</a></li>
  • 0
    Вау, не упомянул об этом. Работает просто отлично. Спасибо!
0

Имейте в виду, что php на стороне сервера, поэтому вы можете использовать printf, чтобы разместить свой javascript на своей странице.

printf("<script>Here is my javascript code</script>");

Я делаю это много с картографическими услугами. Например, чтение местоположений из базы данных и создание маркеров:

    public function MarkerGoogle($s)
    {
        $str  = sprintf("\r\n   var amkr%d = new google.maps.Marker();\r\n", $s);


// More php code here …
0

Если вы хотите, чтобы что-то изменилось, скажем, при каждой загрузке страницы, используйте серверную технологию, такую как php. Если вы хотите, чтобы он менялся при загрузке одной страницы, т.е. в ответ на взаимодействие с пользователем используйте клиентскую технологию Ie JavaScript.

Чтобы попытаться ответить на исходный вопрос или, по крайней мере, дать вам несколько указателей, вам нужно что-то вроде:

<ul id="menu" style="display: none;"><li><a href="">...</a></li>...</ul>
<a id="btn" href="#">disable menu</a>

<script>
document.getElementById('btn').addEventListener('click', function() {
    document.getElementById('menu').setAttribute('style', 'display: block');
}
</script>

Это не идеально (на практике, с одной стороны, вы не хотите просто указывать свою ссылку на "#", поскольку это ничего не сделает для тех, у кого отключен javascript), но это указатель в правильном направлении. Эквивалент jQuery будет примерно таким:

<script>
$('#btn').click(function() { $('#menu').hide(); });</script>
</script>

если это более привлекательно, проверьте jQuery.

  • 0
    так возможно ли сделать это только с помощью js?
  • 0
    почти наверняка, если вы сможете немного расширить ваши требования, один из нас может рассказать вам, как это сделать. Можете ли вы описать предполагаемое поведение?
Показать ещё 2 комментария

Ещё вопросы

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