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部分?
如果您將'$ .post'數據類型設置爲JSON,則根本不需要對其進行解碼。 jQuery會爲你做到這一點。檢查[jQuery.post](http://api.jquery.com/jQuery.post/) – apokryfos
[JQuery解析JSON數組]可能的重複(http://stackoverflow.com/questions/10463131/jquery-parsing-json - 陣列) –