PHP在IF语句中回显jQuery

时间:2011-01-24 14:27:13

标签: php jquery if-statement

编辑:什么是TW * T.对不起大家浪费你的时间。刚刚错过了一个F'in页面上的Google jQuery链接。糟糕。

嗨,我有一个包含3个表格的div。这些应该是页面加载时屏幕上的唯一内容。提交任何一个时,下图显示了一个图表。我想要做的是在PHP IF语句中使div消失,其中包含表单。声音简单吗?

这是我的代码:

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

然而,当我提交其中一个表格(因此发生$ _GET)时,div仍然存在?

编辑:

如果我尝试人们在一行回答,我会得到这个:

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

但是,如果我输入人们的多行答案,没有错误,但div仍显示!

3 个答案:

答案 0 :(得分: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'])) {

修改:如果您想在提交后保留表单但只隐藏它,您可以这样做:

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

答案 1 :(得分:1)

您需要添加DOM ready事件:

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

答案 2 :(得分:0)

修改 你得到一个解析错误,因为你使用双引号,所以php解析器正在读取美元符号作为php变量。我会切换到单引号php语法,让你的生活更轻松:

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

确保将jquery代码包装在onLoad函数$(function(){};