2013-05-02 1 views
0

테이블이 있습니다. 각 행에 버튼을 추가하고 양식의 행을 편집하고 싶습니다. 내 getjson 요청에 LineNumber를 전달해야합니다. 내가 어떻게 할 수 있니? 여기 내 테이블과 내 getjson입니다. (편집) 방금 LineNumber를 요청했지만 실제로 원하는 것은 '+ value.linenumber +'푸시 된 버튼의 ID입니다.버튼이있는 테이블에서 행 ID를 전달하는 방법

//table goes though a loop. 
table_obj.append($('<tr><td>'+value.SLN+'</td><td >'+value.Type+'</td><td  > 
'+value.StopNumber+'</td><td>'+value.LoName+'</td><td >'+value.ReferenceNo+'</td> 
<td class="hide" >'+value.TypeId+'</td><td class="hide" >'+value.LocationId+'</td> 
<td class="hide" >'+value.lineNumber+'</td><td><button id='+value.lineNumber+' 
onclick=edit()>Edit</button></td></tr>')); 

//getjson 
<script> function edit() 
$.getJSON("editstops.php",{ LineNumber:$('#LineNumber').val() },stophandler) 
var stophandler = function(data){ 
$("#SLNS").val(data[0].value.LoadNumber); 
$("#Type").val(data[0].value.Type); 
    $("#StopNumber").val(data[0].value.StopNumber); 
$("#LoName").val(data[0].value.LoName); 
$("#ReferenceNo").val(data[0].value.ReferenceNo); 
$("#TypeId").val(data[0].value.TypeId); 
$("#LocationId").val(data[0].value.LocationId); 
    $("#LineNumber").val(data[0].value.Linenumber); 
}; 

</script> 

답변

1

버튼 태그에는 이미 ID 속성으로 지정된 행 번호가 있습니다.

<button id='+value.lineNumber+' onclick="edit('+value.lineNumber+')">Edit</button></td></tr> 

그런 다음 편집 기능이 인수를 받아들이고 그것을 사용할 수 있습니다 :

function edit(lineNumber) { 
    $.getJSON("editstops.php",{ LineNumber: lineNumber }, stophandler); 
} 

참고하여 버튼이 form 내에 있을지 것을 당신은 쉽게 인수로 edit() 함수에 전달할 수 태그를 사용하여 양식을 제출하고 페이지를 새로 고치지 않으려면 edit()으로 전화 한 후 return false;을 추가해야 할 수도 있습니다.

간단한 작업 예 : http://jsbin.com/okesom/2/edit

은 또한 당신이 완전히 당신의 버튼 태그의 onclick 이벤트를 생략 할 수있다. 루프가 수행되고 테이블이 구축되면이 같은 모든 버튼에 이벤트를 첨부 : http://jsbin.com/ibokon/2/edit

+0

난 이후 처음 opption 갔다 : 여기

$("button").click(function() { var lineNumber = $(this).attr('id'); $.getJSON("editstops.php",{ LineNumber: lineNumber }, stophandler); }); 

두 번째 옵션의 빠른 예입니다 꽤 많이 있었지만 버튼을 클릭하면 전체 페이지가 다시로드되고 요청이 삭제됩니다. –

+0

@CraigKuyper 옵션 1을 예제 링크로 업데이트했습니다. 그것은 라인 번호에서 edit() 함수로 전달되며 페이지가 새로 고쳐지지 않습니다. 다른 일이 계속되어야합니다. 어쩌면 문제를 보여주는 jsbin 예제를 설치할 수 있습니까? 문제를 해결할 수있어서 기꺼이 도와 드리겠습니다. – jszobody

+0

오! 버튼 주위에

태그가있을 수 있으며 버튼이 양식을 제출하고 있습니다. 방금 내 대답과 예제 링크를 업데이트했습니다. "return false;"를 추가하십시오. edit()를 호출 한 후. 비록이 시점에서 옵션 # 2가 더 깨끗하고 간단하다고 생각 하겠지만. – jszobody

관련 문제