jquery - Parsing JSON Request failed using serialize(); -


the code below,

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>     <title></title>     <meta http-equiv="content-type" content="text/html; charset=utf-8" />     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>        <script type="text/javascript">     /*<![cdata[*/      $(document).ready(function () {          var value = $('#button input').val();         var name = $('#button input').attr('name');          $('#button input').remove();         $('#button').html('<a href="#" class="csssubmitbutton" rel=' + name + '>' + value + '</a>');          //global vars         var form = $("#customform");         var name = $("#name");         var nameinfo = $("#nameinfo");         var email = $("#email");          var emailinfo = $("#emailinfo");           //on blur         name.blur(validatename);         email.blur(validateemail);          //on key press         name.keyup(validatename);         email.keyup(validateemail);         //on submitting         $('#button a').on('click', function () {                                  var link = $(this);             if(validatename() & validateemail())             {                 var link = $(this);                 var str = $("form").serialize();                  jquery.ajax({                     url : 'load.php',                     data: str,                       type: 'get',                     cache: 'false',                     datatype: "json",                     beforesend: function () {                         link.addclass('loading');                                        },                      success: function(data) {                         link.removeclass('loading');                         $('#button').css('display','none');                              $('#success').css('display','block');                      },                     error:function(x,e){                         if(x.status==0)                         {                             alert('you offline!!\n please check network.');                         }                         else if(x.status==404)                         {                             alert('requested url not found.');                         }                         else if(x.status==500)                         {                             alert('internel server error.');                         }                         else if(e=='parsererror')                         {                             alert('error.\nparsing json request failed.');                         }                         else if(e=='timeout')                         {                             alert('request time out.');                         }                         else                          {                             alert('unknow error.\n'+x.responsetext);                         }                     }                        });                  return true             }             else             {                 return false;             }         });           //validation functions         function validateemail(){             //testing regular expression             var = $("#email").val();             var filter = /^[a-za-z0-9]+[a-za-z0-9_.-]+[a-za-z0-9_-]+@[a-za-z0-9]+[a-za-z0-9.-]+[a-za-z0-9]+.[a-z]{2,4}$/;             //if it's valid email             if(filter.test(a)){                 email.removeclass("error");                 emailinfo.text("valid e-mail please, need log in!");                 emailinfo.removeclass("error");                 return true;             }             //if it's not valid             else{                 email.addclass("error");                 emailinfo.text("stop cowboy! type valid e-mail please :p");                 emailinfo.addclass("error");                 return false;             }         }         function validatename(){             //if it's not valid             if(name.val().length < 4){                 name.addclass("error");                 nameinfo.text("we want names more 3 letters!");                 nameinfo.addclass("error");                 return false;             }             //if it's valid             else{                 name.removeclass("error");                 nameinfo.text("what's name?");                 nameinfo.removeclass("error");                 return true;             }         }     });      /*]]>*/     </script> 

my html forum:

<form method="post" action="" id="subscribeform" name="subscribeform">     <fieldset>         <label>name: </label><input type="text" class="effect" name="name" id="name"  autocomplete="off" >         <span id="nameinfo">what's name?</span>     </fieldset>      <fieldset>         <label>email: </label><input type="text" class="effect" name="email" id="email"  autocomplete="off" >         <span id="emailinfo">valid e-mail please, need log in!</span>     </fieldset>      <div id="button">         <input type="submit" value="subscribe" name="subscribeform"/>     </div>     <div id="success">         <strong>data saved successfully.</strong>     </div> </form> 

its giving me error: parsing json request failed.

this in firebug,

load.php?name=asdf&email=asdf%40gmail.com 

this php code

<?php sleep(3); echo parse_str($_post['str']); ?> 

suggestions:

  1. change 'data: str' data: {str:str}
  2. change parse_str($_post['str']); parse_str($_get['str']); because, using 'get' method in ajax.
  3. parse_str converts query string in php var. after, parse_str($_get['str']) can show user name echo $name;
  4. you using json ajax, have return proper json data url, use below example in load.php

then, can name ajax response data.name

<?php parse_str($_get['str']); echo json_encode(array(     'name' => $name )); ?>  //or  <?php parse_str($_get['str'], $response); echo json_encode($response); ?> 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -