我正在使用MySQL数据库,并使用PHP显示一些记录。我在每行添加一个按钮,以便用户点击它并在选择中打开一个新的div(maina)。
PHP脚本将生成下一个HTML代码:
<tr><td>Area1</td><td>Dept1</td><td><button class="btn btn-alert" id="edita" value="1"><span class="glyphicon glyphicon-pencil"></span></button></td></tr>
<tr><td>Area2</td><td>Dept2</td><td><button class="btn btn-alert" id="edita" value="2"><span class="glyphicon glyphicon-pencil"></span></button></td></tr>
<tr><td>Area3</td><td>Dept3</td><td><button class="btn btn-alert" id="edita" value="3"><span class="glyphicon glyphicon-pencil"></span></button></td></tr>
等等......我试图使用以下jQuery代码来获取点击按钮的值:
$("#edita").on( "click", function() {
var regid = $("#edita").val();
$("#maina").load('hello.php',{"reg_id":regid}, function(response, status, xhr){
if (status == "error") {
var msg = "Error!, Something went wrong: ";
$("#maina").html(msg + xhr.status + " " + xhr.statusText);
}
});
});
它适用于第一条记录,它显示hello.php中包含的信息并从第一个按钮获取值;但当我点击其他按钮时没有任何反应,它甚至不打开 maina div(hello.php必须显示在maina中并根据按钮显示不同的信息值)。
我想知道使用由PHP EG edita1 , edita2 ... editan 分配的不同ID,但我不知道&#39;知道如何从jQuery代码中调用它们,而无需为每个按钮编写代码块。
我的问题有解决方案吗?你能帮帮我吗?
答案 0 :(得分:0)
在click事件中,您可以将目标元素称为“this”,因此代码变为:
var regid = $(this).val();
您目前使用的方法选择ID为edita的所有按钮,而.val()将始终选择它找到的第一个值。
另外,为了生成有效的html,我建议为每个按钮使用不同的ID,然后使用类或name属性在jQuery选择器中标识它们。
答案 1 :(得分:0)
所有按钮都有相同的ID。这可能会导致问题。 使用类选择器。然后使用'this'关键字来获取数据。例如
[DllImport(...)]
private static extern int GetInfo
([MarshalAs(UnmanagedType.LPWStr)]StringBuilder dst, int dstCapacity);
private void SomeMethod()
{
var sb = new StringBuilder(8192);
// perhaps the function can indicate whether the capacity was large enough
var success = GetInfo(sb, sb.Capacity);
}
<script>
$(".edita").on( "click", function() {
var regid = $(this).val();
alert(regid);
/*$("#maina").load('hello.php',{"reg_id":regid}, function(response, status, xhr){
if (status == "error") {
var msg = "Error!, Something went wrong: ";
$("#maina").html(msg + xhr.status + " " + xhr.statusText);
}
});*/
});
</script>
让我知道它是否有用