打开div按钮不起作用

时间:2016-10-10 01:46:57

标签: javascript php jquery css forms

我有一个注册表单div,它应该在按钮点击时打开。默认情况下,它在页面加载时设置为display: none。在失败的表单提交上,我在我的JS文件中有这个代码(它可以工作,我默认使用display: inline-block设置进​​行了测试):

$(document).ready(function(){
    <?php 
        if(isset($_POST['signUp']) && count($errors)>0){ 
    ?>
    $   ('#home-sign-up-box').show();
    <?php 
        }elseif(isset($_POST['signUp']) && count($errors)==0){ 
    ?>
        $('#home-sign-up-box').hide();
    <?php 
        }else{
    ?>
        $('#home-sign-up-box').show();
    <?php 
        }
    ?>
});

我还有 显示div的代码(在我添加上述代码之前它已经有效):

// Log in and sign up buttons
$("#log-in-button").click(function() {
    $("#home-log-in-box").show();
    $("#home-log-in-box").animate({
        "opacity":1
    }, 115);
    $(".body-darken").show();
    $(".body-darken").animate({
        "opacity":0.5
    }, 115);
});

$(".body-darken").click(function() {
    $("#home-log-in-box").animate({
        "opacity":0
    }, 115);
    $("#home-log-in-box").hide();
    $("#home-sign-up-box").hide();
    $(".body-darken").animate({
        "opacity":0
    }, 115);
    $(".body-darken").hide();
});

$("#home-log-in-close").click(function() {
    $("#home-log-in-box").animate({
        "opacity":0
    }, 115);
    $("#home-log-in-box").hide();
    $(".body-darken").animate({
        "opacity":0
    }, 115);
    $(".body-darken").hide();
});

$("#sign-up-button").click(function() {
    $("#home-sign-up-box").show();
    $("#home-sign-up-box").animate({
        "opacity":1
    }, 115);
    $(".body-darken").show();
    $(".body-darken").animate({
        "opacity":0.5
    }, 115);
});

$("#home-sign-up-close").click(function() {
    $("#home-sign-up-box").animate({
        "opacity":0
    }, 115);
    $("#home-sign-up-box").hide();
    $(".body-darken").animate({
        "opacity":0
    }, 115);
    $(".body-darken").hide();
});

它们都在显示的顺序中位于同一文件中。非常感谢!非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

Russell C.

最重要的一点是你的js文件是由浏览器解析的,而不是服务器,浏览器对php一无所知,更不用说$ _POST了。你只能在你包含的.js文件中包含静态j。如果你需要根据php变量编写“动态”js,那么你必须将它包含在页面的标题部分,而不是静态的js文件中。我会做类似以下的事情。 php决定将三条js行包括在内:

    <?php 
    $html   =  "<head>\n";
    $html  .=  ...
    $html  .=  "<script>\n";
    $html  .=  "    $(document).ready(function(){\n";

    if(isset( $_POST['signUp'] ) && count($errors)>0) {
        $html  .= "        $('#home-sign-up-box').show();\n";
    }elseif(isset($_POST['signUp']) && count($errors)==0){ 
        $html  .= "        $('#home-sign-up-box').hide();\n";
    }else{
        $html  .= "        $('#home-sign-up-box').show();\n";
    };

    $html  .= "    })\n";
    $html  .= "</script>;\n";
    $html  .=  ...
    $html  .=  "</head>\n";
    $html  .=  "<body>\n";
    $html  .=  ...
    ...
    echo $html;

我猜你的网页停止工作的原因是浏览器点击你js文件中的所有php内容并放弃了。

祝你好运