2010-02-01 4 views
0

Ok, je crée un panneau de connexion et d'enregistrement avec jquery et php. En bref, s'il y a des erreurs avec l'enregistrement, il met quelques erreurs de formulaire, redirige vers la page d'enregistrement, le javascript détecte des erreurs avec l'utilisation d'une variable php et force le curseur à se montrer.Problème avec javascript if statement

Le code de travail: Au-dessus du type de document $errors = $form->num_errors; et l'ensemble de la routine $errors fonctionne correctement.

Mon problème est que j'ai également une vérification que le formulaire a été soumis avec succès. Il utilise

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

pour définir la variable $success. La chose folle ici est que cela ne fonctionne pas en utilisant la même routine que la variable $error. Je sais que le $success conditionnel fonctionne correctement car j'ai un écho plus loin sur la page.

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

}); 

La page de démonstration est ici http://demo.ivannovak.com/danlogin/index.php

Suggestions serait appréciée, merci!

Répondre

2

Dans votre page, vous avez une variable errors définie, qui est la raison pour laquelle cette partie fonctionne:

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

Votre fichier javascript est pas traité par PHP, il est servi par le serveur Web afin que vos variables dans ce qui vous avez énuméré ci-dessus:

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

Ceux qui sortent exactement de cette façon au client, ils ne sont pas remplacés par leurs valeurs. Vous devez déplacer ces 2 lignes dans votre page où vous avez des erreurs maintenant, et les retirer des guillemets aussi bien. Sortez-les de votre js et utilisez-le dans votre page:

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

Vous êtes incroyable! Merci beaucoup. –

+0

@ivannovak - Vous êtes les bienvenus :) Content de voir que ça marche –