제목 | 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
].
'"]}'