2015-01-07 3 views
0

참고 : 다음 질문 중 하나에 대한 답변으로 다음을 게시했지만 결함이 있습니다. 그래서 다시 게시합니다. {{D - 링크 (앵커 태그), {동적으로 생성 된 값을 갖는다 클릭에앵커 태그의 동적 값 얻기

-이

가 나는 다음과 같은 사용 토네이도, HTML, 자바 스크립트를 달성하고자하는 기존 스레드의 중복되지 않습니다 [0]}}, MySQL 데이터베이스 (id)에서 왔습니다.}, 나는 id 값 (예를 들어 100)을 가져 와서 토네이도 컨트롤러로 보내고 그 ID와 관련된 모든 세부 사항을 추출하는 로직을 사용할 수 있어야합니다.

ID -------- 참고

100 ----- 100 참고

101 ----- 참고

101의 단계 1 -

a href = "TornadoHandlerPath"

은 기본 Get 메서드로 보내 겠지만 Post 메서드를 사용하여 보내고 싶었습니다. 폼에 http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml

포함 된 방법 포스트 -

그래서 나는이 링크를 따라 갔다. 그래서 내 새 앵커 태그이

a href="javascript: submitForm()" id="id" name="id"> 
            {{d[0]}} </a> 

2 단계처럼 보였다 - 나는 앵커 태그

<input type="hidden" name="cid" id="cid"> 

와 자바 스크립트 함수에서 내가 ID 값을 가지고 그것을 할당 위의 HTML에서 숨겨진 필드를 포함 숨겨진 필드.

양식 제출이 완료되면 ID는 게시물 요청과 함께 전송됩니다.

function submitForm() { 
var id = $("#id").html();   
var hidden = document.getElementById("cid"); 
hidden.value = id; 
var form = document.getElementById("form"); 
form.submit(); 

} 

그리고 토네이도 처리기에서

나는 self.get_argument ("CID")로 잡은 및 로직 구현으로 이동합니다.

글리치이이 방법에 있습니다. 103 번 아이디를 클릭해도 id 100의 내용 만 표시됩니다 !! ID를 기반으로 데이터를 가져 오기 때문입니다. 그리고 모든 행은 동일한 ID를가집니다.

내가

var id = $(this).closest('td').html(), but it dint work. 

전체 코드를 사용하여 시도는 여기 -

$('.alink').on('click', function() { 

var id = $(this).closest('td').html(); 

var hidden = document.getElementById("cid"); 
hidden.value = id; 
var form = document.getElementById("form"); 
form.submit(); 
}); 

HTML

<td> 
<form name="form" id="ft" action="/TornadoHandler" method="Post"> 
<input type="hidden" name="cid" id="cid">           
<a href="javascript: submitForm()" class="alink" id="id" name="id"> {{d[0]}} </a> 
</form> 
</td> 

나는 오랫동안 여기 붙어있다. Pls 날 도와주세요!

+0

당신이 * 무엇을 의미합니까 "그리고 모든 행은 동일한 ID를 가지고"*에 넣어하지? – adeneo

+0

예를 들어, id가 103 및 104 인 행은 모두 동일한 id = "id"를가집니다. 그래서 'var id = $ ("# id") .html();'을 호출하면 첫 번째 행을 선택하고 100이라는 첫 번째 ID를 표시하고 해당 ID의 세부 정보를 표시한다고 생각합니다. '103' '' 104 Newbie

+0

의 문서 내에서 고유해야 ID, 당신은 – Billy

답변

2

데이터 속성을 사용하여 데이터를 이동할 수 있습니다.숨겨진 필드에 대한 필요, 그냥 똑바로 앵커 태그

function submitForm(thelink){ alert(thelink.getAttribute('data-info')); 
 
     
 
}
<a href=""onclick="javascript: submitForm(this)" data-info="hello from data attribute 1"class="alink" id="configid" name="configid"> 1 </a> 
 
<a href=""onclick="javascript: submitForm(this)" data-info="hello from data attribute 2"class="alink" id="configid" name="configid"> 2 </a> 
 
<a href=""onclick="javascript: submitForm(this)" data-info="hello from data attribute 3"class="alink" id="configid" name="configid"> 3 </a>

+0

을 연결하려는 여러 것들에 대한 사용 클래스 이름은 내가 데이터 정보의 값이 무엇인지 몰라. (여기서 u는 언급했다, "hello from data attribute 1"그러나 제 경우에는 동적으로 생성 된 결과로 알고 있습니다.) 지금 코드를 실행하면 100,103,104가 될 것입니다. 10 분 후에 100,120,125 등이 될 수 있습니다. 그리고 120을 클릭하면 120 번에 대한 모든 세부 정보가 표시됩니다. 120 번 세부 정보를 표시하는 방법을 알고 있지만 120 번을 클릭 할 수는 없습니다. – Newbie

+1

@Newbie 당신이 당신의 ''사이에 가지고있는 것과 똑같이 될 것입니다. 따라서 귀하의 경우에는'data-info = "{{d [0]}}" " – Deryck

+0

이지만 데이터 속성을 사용하지 않으려면'.getAttribute ('data-info')'를 '. (textContent || innerText)' – Deryck

관련 문제