Попытка переключения div с JS после вызова скрипта PHP - PullRequest
0 голосов
/ 10 июня 2011

Мне интересно, возможно ли это:

У меня есть страница.Пользователь нажимает на ссылку, и это вызывает скрипт PHP.Скрипт PHP возвращает true или false.

В зависимости от true или false, я надеялся переключить div.

Мне интересно, нужно ли мне это делать AJAX?Как люди обычно достигают этого?Кажется, довольно часто.

Я уже использую эту библиотеку YUI:

<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.8.2r1/build/reset-fonts-grids/reset-fonts-grids.css&2.8.2r1/build/base/base-min.css">

Ответы [ 4 ]

2 голосов
/ 10 июня 2011

Установите скрипт php для добавления скрытого поля ... например ...

<input type="hidden" id="passed-value" value="passed-val-is-true" />

Затем в вашем Javascript при запуске события переключения ... проверьте этот элемент ...

В jQuery было бы что-то вроде этого ...

$foo.click(( if (passed-value.value === "passed-val-is-true") { foo.toggle(); }

Извините за синтаксис ... но вы должны получить общее представление.

Кроме того, если вам нужно обойтись без перезагрузки страницы, я бы рекомендовал Ajax (pref via jQuery)

2 голосов
/ 10 июня 2011

Да, вы должны использовать AJAX для создания хорошего потока на вашем сайте.Вместо того, чтобы реализовывать свои собственные функции обработки AJAX, вы можете использовать одну из больших платформ JavaScript, я рекомендую http://jquery.com/. Там вы можете прочитать о (и посмотреть примеры) jQuery.ajax - http://api.jquery.com/category/ajax/.

Это должно помочь вам начать, но основная идея состоит в том, чтобы связать эту ссылку с функцией AJAX, которая будет вызывать ваш PHP-скрипт, и на основе содержимого возвращаемых данных включать / выключать ваши DIV.

Удачи!

2 голосов
/ 10 июня 2011

jQuery:

$.post('/path/to/url', {data: 'some data'}, function(data) {
    if (data) $('#some-div').show();
    else $('#some-div').hide();
}, 'json');

PHP:

echo json_encode(true);

Для получения дополнительной информации см .:

0 голосов
/ 10 июня 2011

Да, очень просто, нет необходимости в Ajax.Вот два способа:

Используя прямой PHP:

<?php

if($test) {
  echo "<div>Content...</div>";
}

?>

Или, используя встроенный Javascript (в скрипте PHP), предполагая, что в вашем HTML есть <div id='targetDiv'> и $testVar в вашем PHP:

<script type='text/javascript'>
function toggle(testVar) { 
  if(testVar) { document.getElementById('targetDiv').style.display = ""; }
  else { document.getElementById('targetDiv').style.display = "none"; } 
}

window.onload = function() { toggle(<?php echo $testVar; ?>); } 
</script>

Второй метод может быть легко изменен, чтобы изящно ухудшаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...