@Michael & Andy

You gents where correct, it was adding a newline to return data.

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

showed the correct data being returned.  After looking at my php
script I did have a few blank lines before/after <?php ?>. Removed
these and everything is working great now!!

Can not believe it was something stupid like that!

Thanks for your help!!

On Jan 2, 5:39 pm, "Michael Geary" <m...@mg.to> wrote:
> That is an excellent idea; I agree completely. There's nothing inefficient
> about it either.
>
> It also leaves the door open to return additional data without breaking your
> existing code.
>
> { "valid":true }
>
> { "valid":false }
>
> Now if you want to add other properties to that data, you don't have to
> change the code that does an "if( json.valid )" test.
>
> -Mike
>
> > From: donb
>
> > This is probably a good reason to make it a habit to return a
> > JSON object, so that the data is not simply a string of
> > characters with the associated ambiguities.  I realize this
> > leaves me open to counterarguments of 'it's not a efficient'
> > but really that's a minor worry (to me that is).
>
> > On Jan 2, 5:23 pm, "Michael Geary" <m...@mg.to> wrote:
> > > 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