javascript - 打开 div 按钮不起作用

标签 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();
});

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

最佳答案

罗素 C.

最重要的一点是,你的js文件是浏览器解析的,不是服务器,浏览器对php一无所知,更不用说$_POST了。您只能在包含的 .js 文件中包含静态 js。如果您需要基于 php 变量编写“动态”js,则必须将其包含在页面的 header 部分,而不是静态 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 内容并放弃了发送。

祝你好运

关于javascript - 打开 div 按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39950309/

相关文章:

php - Propel:从 Query 对象获取原始 SQL?

php - 在引导模式中通过 Ajax 检查并提交表单

javascript - 在 JavaScript 中循环列表列表时出错

Javascript 的 JOptionPane 等效项?

javascript - 如何从另一个函数内部的 firebase 函数内部访问一个函数

javascript - 使用 JS 动画元素

php - "REPLACE INTO"与 INSERT [IF]

php - Array_filter 和 empty()

javascript - (js) 使用 jquery 或类似工具平滑地 move div x 像素?

javascript - 如何在 html 表体中使用 jQuery 或 javascript?