我使用php和html设计了上表。我想要做的是在单击相应的更新按钮时更新相关用户的行。 这是如何创建表的
<tr class="<?php if(isset($classname)) echo $classname;?>">
<td><input type="checkbox" name="users[]" value="<?php echo $row["NIC_NO"]; ?>" ></td>
<td><?php echo $row["USERNAME"]; ?></td>
<td><?php echo $row["ADMIN"]; ?></td>
<td><?php echo $row["NIC_NO"]; ?></td>
<td><?php echo $row["EB"]; ?></td>
<td><input type="button" name="<?php echo $row["NIC_NO"]; ?>" value="Update" onClick="setUpdateAction();" /></td>
</tr>
如何从相应的更新按钮获取值并仅编写sql代码以更新特定行?
答案 0 :(得分:1)
在您的HTML中:
<tr class="<?php if(isset($classname)) echo $classname;?>" data-id="<?= $row["NIC_NO"]; ?>">
<td><input type="checkbox" name="users[]" value="<?php echo $row["NIC_NO"]; ?>" ></td>
<td><?php echo $row["USERNAME"]; ?></td>
<td><?php echo $row["ADMIN"]; ?></td>
<td><?php echo $row["NIC_NO"]; ?></td>
<td><?php echo $row["EB"]; ?></td>
<td><input type="button" data-id="<?= $row["NIC_NO"]; ?>" data-do="update"/></td>
</tr>
在你的JS(使用jQuery)中:
$("[data-do='update']").click(function(){
var instance = $(this);
$.ajax({
type:"POST",
url:"update.php",
data:"id="+instance.attr('data-id'),
success:function(response){
trObject = $('tr[data-id="'+instance.attr('data-id')+'"]');
tdObjects = trObject.find("td");
tdObjects[1].html(response.USERNAME);
tdObjects[2].html(response.ADMIN);
tdObjects[3].html(response.NIC_NO);
tdObjects[4].html(response.EB);
}
});
});
在你的update.php中
$id = $_POST['id'];
$stmt = $pdo->prepare('SELECT * FROM <table> WHERE NIC_NO = ?');
$stmt->execute(array($id));
$data = $stmt->fetch(PDO::FETCH_OBJ);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);
答案 1 :(得分:0)
应该是:
<td><input type="button" name="NIC_CO" value="<?php echo $row["NIC_NO"]; ?>" onClick="setUpdateAction();" /></td>
该名称在服务器端是可访问的,因此您可以获得:
if (isset($_REQUEST["NIC_CO"]))
$to_update = $_REQUEST["NIC_CO"];