2011-01-24 2 views
0

EDIT: Что такое TW * T. Извините, что все тратили ваше время. Просто пропустил ссылку jQuery Google на одной странице F'in. Упс.PHP echo out jQuery в инструкции IF

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

Это мой код:

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

Однако, когда я действительно представить одну из форм (поэтому $ _GET произошедших) ДИВ еще там ??

EDIT:

Если я пытаюсь люди отвечают на одной линии, я получаю это:

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

Но если я не положил в многопоточных ответы людей, ошибок нет, но Div все еще показывает!

+0

Вы можете изменить ответ с ошибкой синтаксического анализа вы получаете ? – JakeParis

ответ

3

Почему вы хотите, чтобы скрыть формы с 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'])) { 

Edit: Если вы хотите сохранить свои формы после подачи, но только скрыть это, вы могли бы сделать это таким образом:

<?php 
    $formsVisible = !isset($_GET['submit1'])); 
    $formsDisplay = $formsVisible ? 'block' : 'none'; 
?> 
<form style="display:<?php echo $formsDisplay; ?>"> 
<!-- ... ---> 
</form> 
+0

Причина, по которой я сделал это с javascript, так что я мог бы добавить кнопку slideToggle() в форму обратно в/из с помощью jQuery – benhowdle89

+0

+1 это более мудрое решение. – Stephen

+0

Выглядит хорошо, я немного смущен. У меня есть формы, затем на одной странице, но ниже формы, PHP, если $ _GET. Поэтому я не уверен, как ответить на ваш вопрос в – benhowdle89

1

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

if($_GET['submit1']) { 
    echo '<script type="text/javascript">' . "\n"; 
    echo ' $(function() {'    . "\n"; 
    echo '  $("#options").hide();' . "\n"; 
    echo ' });'       . "\n"; 
    echo '</script>'      . "\n"; 
} 
+0

echo ""; создает ошибку: Ошибка анализа: синтаксическая ошибка, неожиданный '(', ожидающий T_VARIABLE или '$' – benhowdle89

+0

Скопируйте и вставьте мой пример дословно. – Stephen

+0

В вашем вставленном примере вы не включили завершающую скобку для блока if. '}' Возможно, вы добавляете его с моим примером, но это происходит позже в вашем скрипте, и это то, что ломается. – Stephen

0

редактировать вы получаете ошибку синтаксического анализа, потому что вы используете двойные кавычки, так что PHP парсер читает знак доллара в качестве переменной PHP. Я хотел бы перейти на единый синтаксис цитаты PHP, чтобы сделать вашу жизнь проще:

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

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