2016-05-12 2 views
0

Я пытаюсь декодировать строку json, используя JSON.parse(), однако я не знаю, где разместить код, поскольку я не знаком с JSON/JQuery.Декодирование строки Json в javascript

Это 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}

Как я могу убедиться, что он показывает только submit_message в строке Json?

+1

Если вы установили свой тип данных '$ .post' в JSON, вам не понадобилось бы его расшифровывать. jQuery сделает это за вас. Проверьте [jQuery.post] (http://api.jquery.com/jQuery.post/) – apokryfos

+1

Возможный дубликат [JSuery Parsing JSON array] (http://stackoverflow.com/questions/10463131/jquery-parsing-json -array) –

ответ

0

Если вы хотите отобразить сообщение отправки в $ error.html (данные), то все, что вам нужно сделать, это заменить его на $ error.html (data.submit_message), поскольку jQuery автоматически анализирует json из данных переменная в объект.

Смежные вопросы