2016-05-12 104 views
0

我想通過使用JSON.parse()來解碼json字符串,但是,我不知道確切的代碼放置位置,因爲我不熟悉JSON/Jquery。在JavaScript中解碼Json字符串

這是JS部分:

/* ----------------------------------------------------------- */ 
    /* Contact form 
    /* ----------------------------------------------------------- */ 

    $('#contact-form').submit(function(){ 

     var $form = $(this), 
     $error = $form.find('.error-container'), 
     action = $form.attr('action'); 

     $error.slideUp(750, function() { 
     $error.hide(); 

     var $name = $form.find('.form-control-name'), 
      $email = $form.find('.form-control-email'), 
      $phone = $form.find('.form-control-phone'), 
      $message = $form.find('.form-control-message'); 

     $.post(action, { 
       name: $name.val(), 
       email: $email.val(), 
       phone: $phone.val(), 
       message: $message.val() 
      }, 
      function(data){ 
       $error.html(data); 
       $error.slideDown('slow'); 

       if (data.match('success') != null) { 
        $name.val(''); 
        $email.val(''); 
        $phone.val(''); 
        $message.val(''); 
       } 
      } 
     ); 

     }); 

     return false; 

    }); 

我mailscript的相關部分:

if($isValid == true) { 
     $result["submit_message"] = _msg_send_ok; 
    } else { 
     $result["submit_message"] = _msg_send_error; 
    } 
     if($_POST["name"]=="" || $_POST["name"]==_def_name) 
      $result["error_name"] = _msg_invalid_data_name; 
     if($_POST["email"]=="" || $_POST["email"]==_def_email || !preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"])) 
      $result["error_email"] = _msg_invalid_data_email; 
     if($_POST["message"]=="" || $_POST["message"]==_def_message) 
      $result["error_message"] = _msg_invalid_data_message; 

    $result['isValid'] = $isValid; 

    echo json_encode($result); 

此輸出以下:{"submit_message":"Bedankt voor uw bericht!","isValid":true}

我如何確保它只顯示Json字符串中的submit_message部分?

+1

如果您將'$ .post'數據類型設置爲JSON,則根本不需要對其進行解碼。 jQuery會爲你做到這一點。檢查[jQuery.post](http://api.jquery.com/jQuery.post/) – apokryfos

+1

[JQuery解析JSON數組]可能的重複(http://stackoverflow.com/questions/10463131/jquery-parsing-json - 陣列) –

回答

0

如果你想要在$ error.html(data)中顯示提交消息,那麼你所需要做的就是用$ error.html(data.submit_message)替換它,因爲jQuery自動從數據中解析出json變成一個對象。