开发者

Trouble with javascript if statement

开发者 https://www.devze.com 2022-12-18 11:31 出处:网络
Ok, I\'m making a login and registration panel with jquery and php.In short, if there are errors with the registration it sets a few form errors, redirects back to the registration page, the javascrip

Ok, I'm making a login and registration panel with jquery and php. In short, if there are errors with the registration it sets a few form errors, redirects back to the registration page, the javascript detects there are errors with the use of a php variable and forces the slider to show itself.

The working code: Above the doc type $errors = $form->num_errors; and the whole $errors routine works fine.

My problem is that I also have a verification that the form was submitted successfully. It uses

if(isset开发者_JS百科($_SESSION['regsuccess'])){
    $success = 1;
} else {
    $success = 0;
}

to set the $success variable. The crazy thing here is that this doesn't work using the same routine as the $error variable. I know the $success conditional is working correctly as I have an it echoed out further down the page.

jQuery slide script:

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

});

The demo page is here http://demo.ivannovak.com/danlogin/index.php

Suggestions would be appreciated, thanks!


In your page, you have an errors variable defined, that's why that portion works:

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

Your javascript file isn't processed by php, it's served directly by the web server so your variables in what you listed above:

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

Those come out exactly that way to the client, they aren't replaced with their values. You need to move those 2 lines into your page where you have errors now, and remove them from quotes as well. Take them out of your js and use this in your page:

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

精彩评论

暂无评论...
验证码 换一张
取 消