2013-05-02 104 views
0

我有一個表我想添加一個按鈕到每一行並編輯表格中的行。我需要將LineNumber傳入我的getjson請求。我怎樣才能做到這一點?這是我的桌子和我的getjson。 (編輯)我只注意到我要求LineNumber,但我真正想要的是按鈕的id'+ value.linenumber +'。我怎樣才能通過一個表中的行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屬性。你可以很容易地把它傳遞到edit()函數作爲參數:

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

那麼你的編輯功能可以接受這種說法並使用它:

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

請注意,如果您的按鈕內form標記,您可能還需要在致電edit()後添加return false;以防止提交表單和刷新頁面。

簡單的工作例如:http://jsbin.com/okesom/2/edit

另外,您可以完全離開過你的按鈕標籤onclick事件。在您的循環完成並表而建,附加一個事件像這樣所有的按鈕:

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

這裏是第二個選項的一個簡單的例子:http://jsbin.com/ibokon/2/edit

+0

我與第一opption去,因爲我幾乎在那裏,但當我點擊按鈕整個頁面重新加載,並消除了請求。 – 2013-05-03 14:39:54

+0

@CraigKuyper我用示例鏈接更新了選項1。它將行號傳遞給edit()函數,頁面不刷新。還有其他一些事情正在發生。也許你可以設置一個你自己的jsbin例子來顯示問題?我很樂意幫助您解決問題。 – jszobody 2013-05-03 15:47:51

+0

哦!您的按鈕周圍可能有一個

標記,並且按鈕正在提交表單。我剛剛更新了我的答案和示例鏈接。添加「返回false」;調用edit()之後。雖然在這一點上,我認爲選項#2更清潔,更簡單。 – jszobody 2013-05-03 15:50:35

相關問題