I'm a fan of this approach:

console.log('[' + data.length + ']')


andy

-----Original Message-----
From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On
Behalf Of Michael Geary
Sent: Friday, January 02, 2009 4:23 PM
To: jquery-en@googlegroups.com
Subject: [jQuery] Re: JQUERY .POST PROBLEM


The 'if' statement in JavaScript is reliable.

If your "if( data == 'no' )" is taking the "else" path, the most likely
reason is that the data variable is indeed not equal to "no".

Even though the console.log showed a value of "no", are you sure there isn't
a newline at the end? What does "console.log(data.length)" show?

You can also use the Fiddler2 debugging proxy, or the Net tab in Firebug, to
see the actual length of the body of the response from the PHP script.

My suspicion is that there's an extra newline at the end of your PHP script.
Your PHP script actually looks like this, doesn't it?

<?php
...your code...
?>

Depending on the version of PHP, a single newline after the ?> may not add a
newline to the output, but if there are two newlines after the ?> you'll
definitely get an extra newline in the output - and it wouldn't necessarily
be obvious from looking at the PHP code in a text editor.

Remember that anything before the opening <?php or after the closing ?> is
rendered directly as part of the HTML output.

Because of this, best practice in a pure PHP script is to *omit* the closing
?>. The language does not require it, and omitting the closing ?> insures
that you won't get any spurious newlines in your output.

If this isn't it, post a link to a test page that demonstrates the problem.

-Mike

> From: wattsup
> 
> I am having some problems with a jquery script that I am writing. The 
> problem is after I receive the data from the php file jquery seems to 
> skip the if statement.  I am logging to console and it is showing yes/ 
> no depends on email address. I am enclosing my scripts in case someone 
> can help me.
> 
> 
> <script src="javascripts/jquery-1.2.6.js" type="text/javascript"
> charset="utf-8"></script>
> <script src="javascripts/jquery.validate.js" type="text/javascript"
> charset="utf-8"></script>
> <script src="javascripts/jquery.corner.js" type="text/javascript"
> charset="utf-8"></script>
> <script src="javascripts/jquery.lightbox.packed.js" 
> type="text/ javascript"></script>
> 
> $(document).ready(function(){
>       $("#email").blur(function(){
>               var post_string = $(this).val();
> 
>               $("#msgbox").removeClass().addClass('messagebox').text
> ('Checking...').fadeIn(1000);
>                       $.post("php/email.php",{ email_check: 
> post_string} ,function(data){
>                               console.log(data); // show data
> value in console
>                                if(data=='no') {  // email not avaiable
> <------------------------- Skipping this area
>                                       
> $("#msgbox").fadeTo(200,0.1,function(){
>                                               
> $(this).html('email address already exists').addClass
> ('messageboxerror').fadeTo(900,1)
>                                       });
>                               } else { // email avaiable
> <-------------------------- Always gos here no matter what
>                                       
> $("#msgbox").fadeTo(200,0.1,function(){
>                                               
> $(this).html('email available to register').addClass 
> ('messageboxok').fadeTo(900,1);
>                                       });
>                               } // end if
>                       }); // end post
>       }); // end email blur
> }); // end doc ready
> 
> 
> 
> 
> PHP FILE
> 
> if(isset($_POST['email_check'])) {
>       $email = $_POST['email_check'];
> 
>       require_once('config.inc.php');
>       require(MYSQL);
> 
>       $result = @mysql_query("SELECT * FROM members WHERE (user_email = 
> '$email')");
>       $row_num = mysql_num_rows($result);
> 
>       if( $row_num > 0){
>               // "unavailable to register";
>               $valid = "no";
>       }else{
>               // "available to register";
>               $valid = "yes";
>       };
> 
>       echo $valid;
>       mysql_close();
> }
> 
> 
> I have been working on this all day and can not figure out why the 
> data is skipping the if statement. if you have any ideals please let 
> me know.
> 



Reply via email to