区分桌子上的多个按钮。 HTML php

时间:2016-09-23 14:42:29

标签: php html

我正在创建一个编辑编辑/删除用户表,并为表中填充的每条记录创建了一个“编辑”按钮。我想做几件事。 1.当为特定用户按下编辑按钮时,打开一个名为“编辑”的新页面。 2.在“编辑”页面中填写表单控件,其中包含已按下的特定“编辑”按钮的相应用户信息。

我的问题是,如何区分用户表上按哪个按钮?

这就是我的表格:

enter image description here

这是生成表格和按钮的代码。

    using (var db = new TestDBContext1())
    {
        SqlParameter param1 = new SqlParameter("@CustomerID", 0);

        var outParam = new SqlParameter();
        outParam.ParameterName = "@Counter";
        outParam.SqlDbType = SqlDbType.Int;
        outParam.Direction = ParameterDirection.Output;

        var customers = await db.Database.SqlQuery<Customer>("DetailsANDCount @CustomerID, @Counter OUT", param1, outParam).ToListAsync();
    }

5 个答案:

答案 0 :(得分:1)

您可以使用唯一ID

来区分每个编辑按钮
@Test
public void myTestFunction() {
    String myJson1 = "{\"item1\":\"nil\",\"item2\":\"nil\",\"subItemList\":[{\"subItem1\":\"nil\",\"subItem2\":\"nil\"}]}";
    String myJson2 = "{\"subItemList\":[]}";

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(new TypeToken<List<MySubItems>>(){ }.getType(), new MyOwnListDeserializer());
    gsonBuilder.registerTypeAdapter(String.class, new MyOwnStringDeserializer());
    Gson gson = gsonBuilder.create();

    MySimpleObject myObj1 = gson.fromJson(myJson1, MySimpleObject.class);
    MySimpleObject myObj2 = gson.fromJson(myJson2, MySimpleObject.class);

    assertThat(myObj1.equals((myObj2))).isTrue();
}

class MySimpleObject implements Serializable {
    String item1 = null;
    String item2 = null;
    List<MySubItems> subItemList;

    @Override
    public int hashCode() {
        int hash = 17;
        hash = 31*hash + ((item1 == null)? 0 :item1.hashCode());
        hash = 31*hash + ((item2 == null)? 0 :item2.hashCode());
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof MySimpleObject) {
            return this.hashCode() == obj.hashCode();
        }
        return super.equals(obj);
    }
}

class MySubItems implements Serializable {
    String subItem1 = null;
    String subItem2 = null;

    @Override
    public int hashCode() {
        int hash = 17;
        hash = 31*hash + ((subItem1 == null)? 0 :subItem1.hashCode());
        hash = 31*hash + ((subItem2 == null)? 0 :subItem2.hashCode());
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof MySubItems) {
            return this.hashCode() == obj.hashCode();
        }
        return super.equals(obj);
    }
}

class MyOwnStringDeserializer implements JsonDeserializer<String> {
    @Override
    public String deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        return (json.getAsString().equals("nil"))? null : json.getAsString();
    }
}

class MyOwnListDeserializer implements JsonDeserializer<List<MySubItems>> {
    @Override
    public List<MySubItems> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        List<MySubItems> list = new ArrayList<>();

        for (JsonElement element : json.getAsJsonArray()) {
            JsonObject subObj = element.getAsJsonObject();
            MySubItems subItems = new MySubItems();

            if (!subObj.get("subItem1").getAsString().equals("nil")) {
                subItems.subItem1 = subObj.get("subItem1").getAsString();
            }
            if (!subObj.get("subItem2").getAsString().equals("nil")) {
                subItems.subItem2 = subObj.get("subItem1").getAsString();
            }

            if (subItems.subItem1 != null || subItems.subItem2 != null) {
                list.add(subItems);
            }
        }

        return (list.size() == 0)? null : list;
    }
}

单击编辑按钮时,使用以下代码

读取data-id
<button class='edit' data-id="<?php echo $_GET["id"];?>"> EDIT</button>.

最好在下一页显示数据,使用bootstrap模型框和AJAX请求,这将与很多用户进行交互。

$(document).on('click', '.edit', function(){
  var id = $(this).attr('data-id');
 //code - you need to do
})

答案 1 :(得分:0)

如果您将“编辑”提交按钮的值属性更改为行ID,则可以使用此值来了解要编辑的记录ID并填充它。

"<input type='submit' name='edit' value='edit'>"

更改为

"<button name='edit' value='{$row['id']}'>Edit</button>"

请注意,如果整个表格是表单容器,则表中的所有输入都将被发布,而不仅仅是当前行。

答案 2 :(得分:0)

我会将编辑按钮改为超链接。然后就没有表格代码了。我假设您不需要通过&#34;删除&#34;编辑页面的参数(因为这是一个不同的操作)。

而不是

echo "<td><input type='submit' name='edit' value='edit'></td>";

echo "<td><a href='edit.php?id=".$row['id']."'>Edit</a></td>";

然后在edit.php中查找变量

$_GET["id"]

并使用它来搜索数据库并显示相应的记录以供编辑。

P.S。如果您仍然需要&#34;编辑&#34;超链接看起来像一个按钮,使用CSS很容易做到这一点。

答案 3 :(得分:0)

我是通过创建和调用javap函数来实现的,该函数将行的id作为参数传递。

echo"<tr>";
                                    echo"<td>".$counter. ".</td>";
                                    echo"<td>".$lname. " , " .$fname."</td>";
                                    echo"<td>".$row['email']."</td>";
                                    echo"<td>".$row['password']."</td>";
                                    echo $admincolor . $stringAdmin ."</td>";
                                    echo"<td><input type='checkbox' name='user[]' value='{$row['id']}'></td>";
                                    echo"<td><input type='button' name='edit' value='edit' onclick='javascript:editUser(". $row['id'].");'></td>";
                                echo"</tr>";

该功能会将用户重定向到&#39;编辑&#39;页面传递url中id的值。

function editUser(id){

                window.location = "edituser.php?id="+id;

            }

在编辑页面上,我使用$ _GET来检索id值并编辑我的条目。

答案 4 :(得分:-1)

您可以更改表格并将其添加到表格中:

echo "<tr>";
echo "<td>".$counter.".</td>";
echo "<td>".$lname." , ".$fname."</td>";
echo "<td>".$row['email']."</td>";
echo "<td>".$row['password']."</td>";
echo $admincolor.$stringAdmin."</td>";
<form action="edit.php" method="post">
  echo "<input type="text" name="id" value="$row['id']" style="visibilty: hidden;">";
  echo "<td><input type="checkbox" name="delete"></td>";
  echo "<td><input type="submit" name="edit" value="edit"></td>";
</form>
echo "</tr>"

首先我们使用POST方法定义了一个表单:<form action="edit.php" method="post">然后让 edit.php 处理请求。

然后我们添加了一个隐藏的表单元素来存储和传递用户的ID:<input type="text" name="id" value="$row['id']" style="visibilty: hidden;">可以使用value="..."的“编辑”按钮但是如果你正在处理传递多个变量使用POST或GET方法,诀窍是使用带有visibility: hidden; CSS属性的额外表单元素。

最终,在提交表单后,它会将$row['id']的值传递给 edit.php

我们可以在 edit.php 中处理请求,如下所示:

<html>
  <body>

    User with this ID number: <?php echo $_POST["id"]; ?> will be edited.

  </body>
</html>

官方指南:http://php.net/manual/en/tutorial.forms.php

您可以使用POST或GET方法传递变量。有关详细比较:https://stackoverflow.com/a/504993/2104879