| 제목 | kaido님께서 내주신 미션을 수행중인데 막히는 부분이 생겨 질문 드리네요 ㅜㅜ | ||
|---|---|---|---|
| 글쓴이 | 정수리 | 작성시각 | 2016/08/11 14:11:27 | 
|  | |||
| kaido님께서 주신 미션중에 
 1차원 배열에서 랜덤으로 과일을 뽑아 ajax로 받아와서 과일에 따른 색깔을 alert를 통해 출력하는 것인데 
 
$test= array('사과', '포도', '수박');
$fruit =  array_rand($test);
$test = '[{"fruit":"'.$test[$fruit].'"]}';
echo $test;
 통해 랜덤으로 과일은 뽑아 왔습니다. 
 그리고 
$(document).ready(function(){
			$.ajax({
				type:'get',
				dateType:'json',
				url:'ranajax.php',
				success:function(date){
					var test  = JSON.parse(date);
					alert(typeof(test));
					if(test == '사과'){
						alert('red');
					}
					if(test == '포도'){
						alert('puple');
					}
					if(test == '수박'){
						alert('green');
					}
				}
				});
			});과일에 따른 색을 출력하려고 하는데 잘안되네요; 파이어버그로 확인했을 때 응답창에서는 
이렇게 나오구요 
 에러는 SyntaxError: JSON.parse: expected ',' or '}' after property value in object at line 1 column 15 of the JSON data 이런 에러가 나오는데 문법상 오류인것 같은데;; 아무리 봐도 잘못된 부분을 몾찾겠네요;; 
 | |||
| 다음글 | ajax를 오늘 하루 공부하면서 이해안되는 부분이 있어... (3) | ||
| 이전글 | json 사용이유와 사용용도에 대해 알고싶습니다, (2) | ||
| 
                                아플바
                                /
                                2016/08/11 14:36:56 /
                                추천
                                0
                             | 
| 
                                정수리
                                /
                                2016/08/11 14:41:21 /
                                추천
                                0
                             @아플바 
$test = '[{"fruit":"'.$test[$fruit].'"}]';수정했는데도 SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON date 오류가 계속 뜨네요 ㅜㅜ 어디가 문제 인지 참;; 
 | 
| 
                                정수리
                                /
                                2016/08/11 14:45:50 /
                                추천
                                0
                             자체 해결 하였습니다. dataType:'json'을 삭제 해주니 잘되네요; 
 dataType:'json' 설정해놓고 JSON.parse함수를 사용하면 에러가 뜨는데 왜;; 에러가 뜨는지 알려주실분 계실까요 ?? | 
| 
                                An녕
                                /
                                2016/08/11 14:56:30 /
                                추천
                                0
                             http://credemol.blogspot.kr/2011/08/jquery-ajax-datatype-json.html 저도 몰라서 찾아보니깐 여기글 보니깐 이해가 되네요 | 
| 
                                정수리
                                /
                                2016/08/11 15:06:49 /
                                추천
                                0
                             @An녕 답변감사합니다 달아주신 링크도 몰라서 찾아보았을때 보았던건데 그글을 읽어도 제대로 이해가 안되서 ㅜㅜ | 
| 
                                박준영
                                /
                                2016/08/11 15:38:56 /
                                추천
                                0
                             $test= array('사과', '포도', '수박'); 
 소스는 이렇게 하시는게 좀더 깔끔할거 같애용. 
 | 
| 
                                정수리
                                /
                                2016/08/11 16:45:50 /
                                추천
                                0
                             @박준영 답변감사합니다 ^^ 
 넵 그렇게 고쳐야 겠네요 | 
| 
                                kaido
                                /
                                2016/08/11 17:34:44 /
                                추천
                                0
                             
 dateType:'json'
이미 json 타입으로 받으셨습니다.
JSON.parse(date)  이건 하지 않아도 됩니다.
type 을 제거 하면 디폴트가 text 라서 text 타입을 반대로 JSON으로 파싱 하셔서 된것입니다.
if(date.fruit == "사과"){ ... }
이런식으로 간단하게 표현 하시면 됩니다.
 | 
| 
                                kaido
                                /
                                2016/08/11 17:41:20 /
                                추천
                                0
                             팁으로 제가 json이 아니여도 표현이 가능 하다고 했던것중 하나 입니다. 방법에 따라서는 효율적 일 수도 있습니다. 
 dateType : 'html' //html 타입으로 받으시고 
 
$test= array('사과', '포도', '수박');
$fruit =  array_rand($test);
if($fruit == "사과"){$color = "red";}
if($fruit == "포도"){$color = "puple";}
if($fruit == "수박"){$color = "green";}
echo "<script> alert(' ".$color." '); </script> ";
이런 방법도 가능 합니다.
이 방식은 생각 이상으로 활용도가 높습니다.
 | 
3번째줄에서 뒤에 괄호 순서 바뀌었네요 ]} => }]
$test='[{"fruit":"'.$test[$fruit].'"]}'