PHP выводит jQuery в оператор IF - PullRequest
0 голосов
/ 24 января 2011

РЕДАКТИРОВАТЬ: Что TW * T. Извините всех за потраченное время. Просто пропустил ссылку Google JQuery на одной странице F'in. Упс.

Привет, у меня есть div, содержащий 3 формы. Они должны быть единственными на экране при загрузке страницы. Когда любой из них будет представлен, график будет показан ниже. То, что я пытаюсь сделать, это в выражении PHP IF - заставить div исчезать, который содержит формы. Звучит просто?

Это мой код:

if($_GET['submit1']){
echo "<script type='text/javascript'>$('#options').css('display','none');</script>";

Однако, когда я отправляю одну из форм (поэтому произошел $ _GET), div все еще там ??

EDIT:

Если я попробую ответить людям в одну строку, я получу это:

Parse error: syntax error, unexpected '(', expecting T_VARIABLE or '$'

Но если я вставлю многострочные ответы людей, ошибки не будет, но div все равно покажет!

Ответы [ 3 ]

3 голосов
/ 24 января 2011

Почему вы хотите скрыть формы с помощью JavaScript?

Просто сделайте это с помощью PHP:

<?php
    if(!isset($_GET['submit1'])) {
?>
        //<form> your form HTML here
<?php
    } else {        
?>
        <p>Your submitted data: <?php print_r($_GET); ?></p>
<?php
    }
?>

Таким образом, ваши формы показываются только в том случае, если вы НЕ отправили одну из них.Возможно, вам придется настроить параметры, если у вас есть несколько форм, например

if(!isset($_GET['submit1']) && !isset($_GET['submit2'])) {

Редактировать : если вы хотите сохранить свои формы после отправки, но только скрыть их, вы можете сделать этотаким образом:

<?php
    $formsVisible  = !isset($_GET['submit1']));
    $formsDisplay  = $formsVisible ? 'block' : 'none';
?>
<form style="display:<?php echo $formsDisplay; ?>">
<!-- ... --->
</form>
1 голос
/ 24 января 2011

Вам нужно добавить событие готовности DOM:

if($_GET['submit1']) {
    echo '<script type="text/javascript">' . "\n";
    echo '    $(function() {'              . "\n";
    echo '        $("#options").hide();'   . "\n";
    echo '    });'                         . "\n";
    echo '</script>'                       . "\n";
}
0 голосов
/ 24 января 2011

edit Вы получаете ошибку разбора, потому что вы используете двойные кавычки, поэтому анализатор php читает знак доллара как переменную php.Я бы переключился на синтаксис php с одинарными кавычками, чтобы сделать вашу жизнь проще:

if($_GET['submit1']){
    echo '<script type="text/javascript">
        $(function(){ 
            $("#options").css("display","none");
        });
    </script>';
}

Обязательно закройте ваш код jquery в функции onLoad $(function(){};

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