2010-02-01 148 views
0

好吧,我正在做一个登录和注册面板jQuery和PHP。简而言之,如果注册时出现错误,它会设置一些表单错误,重定向回注册页面,javascript检测到使用php变量时出现错误并强制滑块显示自身。麻烦与JavaScript if语句

工作代码:上面doc类型$errors = $form->num_errors;和整个$errors例程正常工作。

我的问题是,我也有一个验证,表单提交成功。它采用

if(isset($_SESSION['regsuccess'])){ 
    $success = 1; 
} else { 
    $success = 0; 
} 

设置$success变量。这里的疯狂的事情是,这不能使用与$error变量相同的例程。我知道$success条件工作正常,因为我有一个它进一步向下呼应页面。

jQuery的幻灯片脚本:

$(document).ready(function() { 

    var num_errors = "<?php $errors; ?>"; 
    var form_success = "<?php $success; ?>"; 

    // Expand Panel 
    $("#open").click(function(){ 
     $("div#panel").slideDown("slow"); 
    }); 
    // Collapse Panel 
    $("#close").click(function(){ 
     $("div#panel").slideUp("slow"); 
    });  

    // Switch buttons from "Log In | Register" to "Close Panel" on click 
    $("#toggle a").click(function() { 
     $("#toggle a").toggle(); 
    });  

    //this part works 
    if(errors>0){ 
     $("div#panel").slideDown(); 
     $("#toggle a").toggle(); 
    } 

     //this part doesn't 
    if(form_success>0){ 
     $("div#panel").slideDown(); 
     $("#toggle a").toggle();   
    } 

}); 

演示页是这里http://demo.ivannovak.com/danlogin/index.php

建议,将不胜感激,谢谢!

回答

2

在你的页面中,您已经定义了一个errors变量,这就是为什么这部分工作:

<script type="text/javascript" language="javascript"> 
<!-- 
errors = 0; // --> 
</script> 

你的JavaScript文件不会被PHP处理,则直接投放在网络上,让你的变量是什么你上面列出的:

var num_errors = "<?php $errors; ?>"; 
var form_success = "<?php $success; ?>"; 

那些问题完全是这样的客户端,他们不会被他们的价值取代。您需要将这两行移动到现在有错误的页面中,并将它们从引号中删除。将它们从您的js中取出并在您的页面中使用它:

<script type="text/javascript" language="javascript"> 
    var num_errors = <?php $errors; ?>; 
    var form_success = <?php $success; ?>; 
</script> 
+0

您真了不起!非常感谢。 – 2010-02-01 02:22:25

+0

@ivannovak - 欢迎您:)很高兴看到它的工作 – 2010-02-01 02:24:04