Задать вопрос
@RashonS
Юный программист, изучающий PHP JS JQUERY AJAX

Почему не работает код AJAX JQUERY JSON PHP?

При alert(result) выдает все правильно, при alert(result.sname) выдает - undefined
Что не так?

Вот код с Ajax
$('#editprofile').submit(function(event){
	event.preventDefault();
	$.ajax({
		type: $(this).attr('method'),
                url: $(this).attr('action'),
                data: new FormData(this),
                contentType: false,cache: false,processData: false,
		success: function(result) {
			alert(result.sname);
		}
	});
});


Вот PHP:
if(!empty($data['changesname'])){
	$errors = array();
	if (trim($data['changesname']) == '') $errors[] = 'Введите фамилию';			
	if(strlen($data['changesname']) > 50) $errors[] = 'Фамилия слишком большая';		
	if(strlen($data['changesname']) <1) $errors[] = 'Фамилия слишком маленькая';
	if(empty($errors)){
	        $user = R::load('users', $_SESSION['id']);
		$user->sname = $data['changesname']; 
		R::store($user);
		echo json_encode(array('sname'=>$data[changesname]));
	}			
}
  • Вопрос задан
  • 1054 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Ну там же JSON, парсите его и обращайтесь.
success: function(result) {
      var obj = JSON.parse(result);
      alert(obj.sname);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
alex-1917
@alex-1917
Если ответ помог, отметь решением
рабочий кусок php:
echo json_encode(array('img' => $img, 'img_title' => $img_title));
exit;


рабочий кусок js:
jQuery.ajax({
	type: "POST",
	url: "/send.php",
	data: arrr,
	success: function(data){
		var result = jQuery.parseJSON( data );
		jQuery('.kit_box img').attr('src', result.img);
		jQuery('.kit_box img').attr('title', result.img_title);
	}
});
Ответ написан
Комментировать
iNickolay
@iNickolay
Будьте внимательней, либо пользуйтесь IDE:
echo json_encode(array('sname'=>$data[changesname]));
Вы забыли кавычки:
echo json_encode(array('sname'=>$data['changesname']));

Ну и парсите JSON, как уже упомянул Владимир Проскурин.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы