2013-05-02 70 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

相关问题