테스트 사이트 - 개발 중인 베타 버전입니다

ajax value값 쉼표로 구분해서넣기 채택완료

후루루룰 8년 전 조회 3,829

</p><p><script type="text/javascript"></p><p>
</p><p>$(".zz").click(function(){</p><p><span style="white-space:pre">	</span>var tuid = $(this).attr('data-idx');</p><p><span style="white-space:pre">	</span>var tdata = '';</p><p><span style="white-space:pre">	</span></p><p><span style="white-space:pre">	</span>$.ajax({</p><p><span style="white-space:pre">		</span>url: "/ajax/test.php",</p><p><span style="white-space:pre">		</span>type: "post",</p><p><span style="white-space:pre">		</span>dataType: "json",</p><p><span style="white-space:pre">		</span>data:{uid:tuid},</p><p><span style="white-space:pre">		</span>success: function(data){</p><p><span style="font-size: 11pt; white-space: pre;">	</span><span style="font-size: 11pt;"> </span> </p><p><span style="white-space:pre">			</span>for (i=0;i<2;i++)</p><p><span style="white-space:pre">			</span>{</p><p><span style="white-space:pre">				</span>tdata += tuid+",";</p><p><span style="white-space:pre">			</span>}</p><p><span style="white-space:pre">			</span>alert(tdata);</p><p><span style="font-size: 11pt; white-space: pre;">		</span><span style="font-size: 11pt;">}</span> </p><p><span style="font-size: 11pt; white-space: pre;">	</span><span style="font-size: 11pt;">})</span> </p><p><span style="white-space:pre">	</span>return false;</p><p>});</p><p></script></p><p>
</p><p>

뭐가 잘못됬는지 모르겠습니다..

alert(tdata); 를 하면 예를들면 123,456 이런식으로 나와야하는데

123,123으로만 나와요..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
한스8
8년 전

var tuid = $(this).attr('data-idx'); 

tuid의 값이 123 이 있을거라 예상됩니다. 루프를 두번돌기때문에 123,123이 되는거구요.

그리고 ajax 통신 후에 for 문을 두번 돌리시는데 for (i=0;i<2;i++) 이것과 tuid는 어떤연관이있는지요? 무조건 두번을 돌려야 하는건가요?

ajax통신후 리턴받은 data로 루프를 돌리셔야 그값에 따라서 쉼표로 붙습니다.

저렇게 하시면 값이 길던 짧던 두개만붙어요^^;

좀더 자세한 정보를 주시면 자세한 답변이 갑니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

후루루룰
8년 전
각각의 tuid값이 있고 예를들면
홍길동 = 123;
박지성 = 456;

tuid값이 홍길동은 123; 박지성은 456; 이라고할때

홍길동이랑 박지성을 ajax태워서
ajax success하면

<input type="hidden" name="aa" value="123,456">

이런식으로 value에 넣고싶어요.

댓글을 작성하려면 로그인이 필요합니다.

한스8
8년 전

$(".zz").click(function(){ 

 var tuid = $(this).attr('data-idx');

아실지 모르겠지만 .zz 클래스의 $(this).attr('data-idx') 의 값은 현재 클릭한 값 한가지만 가져오게 됩니다.;;

tuid에 여러 값을 쉼표로 가져오고 싶다면 아래와 같이 가져오세요.

$('.zz').map(function(){return $(this).attr('data-idx')}).get().join(",")  

그래야 홍길동 박지성 값을 ajax로 서버에 넘기게 되며 그후에 서버에서 홍길동 박지성 값을 넘겨서 처리하는 방식이 일반적이지요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

후루루룰
8년 전
답변감사합니다...어렵네요...

ajax success 했을때
tuid값을
<input type="hidden" name="aa" value="">

value값에다가 클릭한 tuid값을 123,456,789 이런식으로 넣고싶은데..

이렇겐 안되는건가요?
조니워커1
8년 전
지금은 tuid 값 자체를 잘못가져오시는것같아서 위에 가이드를 한거에요
값 셋팅 자체는 $('input[name=aa]').val(tuid) 로 하면 되구요.

모든 zz 클래스의 attr('data-idx') 값을 가져오려면 이렇게 하면되요.
$('.zz').map(function(){return $(this).attr('data-idx')}).get().join(",")

위와같이하면 123,456,789 라고 나옵니다.

근데 체크되거나 클릭한 값만 가져오게 하려면 셀렉터를 수정해야합니다.;;
후루루룰
8년 전
자꾸 여쭈어봐서 죄송해요..
클릭한값만 가져오게 해야합니다 ㅠㅠㅠ
조니워커1
8년 전
선택한 값이라면 화면이 어떻게 구성되어있는지도 알아야하구요~
어찌되었든 여러개를 선택하고 선택한 값을 따로 저장하든 체크 박스를 이용하든 화면단에서도 값을 유지 해야합니다.
어떤식으로 구현되어있는지에 따라서 선택된 값을 가져오는게 달라지겠죠~
정보가 없어서 답변이 어렵네요~ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

8년 전

test.php 파일의 내용이 문제일 수 도 있을 것 같은데..

해당 파일의 내용도 같이 올려주시면 답변에 더 도움이 되지 않을까 합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인