我有一个注册表单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();
});
它们都在显示的顺序中位于同一文件中。非常感谢!非常感谢任何帮助!
答案 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内容并放弃了。
祝你好运