在 PHP 生成的表中添加和访问按钮 ID
Adding and accessing buttons IDs in a PHP-generated table
我的php生成表,从SQL数据库请求数据并将数据存储在表中时遇到问题。
表中每行的第一个单元格包含一个下拉按钮,该按钮链接到删除该行的 delete.php 脚本。它还链接到用于修改行单元格的 modif.php 脚本。我的问题是我需要访问带有 ID 的下拉按钮才能知道要删除哪一行。
而且我真的不知道如何将我的下拉按钮与 ID 链接并在我的脚本中访问它们。
这是代码:
<?php
$con=mysqli_connect("localhost","root","icare","icare1");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM magasin");
echo "<table border='1'>
<tr>
<th>code</th>
<th>ip</th>
<th>ads</th>
<th>region</th>
<th>adress</th>
<th>name</th>
<th>email</th>
<th>number</th>
<th>gtc</th>
<th>date</th>
</tr>";
$indexB = array();
$i = 0;
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>
<div class='dropdown'>
<button id=$indexB[$i] class='dropbtn'>▶</button>
<div class='dropdown-content'>
<a href='modif.php'>Modifier</a>
<a href='delete.php'>Supprimer</a>
</div>
".$row['code']."
</div>
</td>";
echo "<td><div>" . $row['ip'] . "</div></td>";
echo "<td><div>" . $row['ads'] . "</div></td>";
echo "<td><div>" . $row['region'] . "</div></td>";
echo "<td><div>" . $row['adress'] . "</div></td>";
echo "<td><div>" . $row['name'] . "</div></td>";
echo "<td><div>" . $row['email'] . "</div></td>";
echo "<td><div>" . $row['number'] . "</div></td>";
echo "<td><div>" . $row['gtc'] . "</div></td>";
echo "<td><div>" . $row['date'] . "</td>";
echo "</tr>";
$i++;
}
echo "</table>";
mysqli_close($con);
?>
这是删除.php :
<?php
$connection = mysqli_connect("localhost", "root", "icare", "icare1");
if($connection === false){
die("Connection failed " . mysqli_connect_error());
};
//$id =
$sql = "DELETE FROM magasin WHERE Code=".$id;
//$result = mysqli_query($connection,$sql);
if(mysqli_query($connection, $sql)){
echo "Done !";
} else{
echo "Failed : $sql. " . mysqli_error($connection);
}
mysqli_close($connection);
?>
我启动了一个 indexB[] 来存储下拉列表 ID,但我不确定我做得是否正确。最后,我想将我的按钮链接到代码属性,然后使用 code 属性删除带有 sql 查询的行。
我是新手,所以...对不起,如果我做了或问了一些愚蠢的事情。
更新:致米克拉菲兹克 :
我试过你的答案,但它不起作用。我只得到"1">Supprimer"。似乎 href 有问题,但我只是找不到原因。我不知道我忘记了什么,所以如果你看到什么问题:
<?php
$con=mysqli_connect("localhost","root","icare","icare1");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM magasin");
echo "<table border='1'>
<tr>
<th>Code</th>
<th>Adresse IP</th>
<th>Adresse ADS</th>
<th>Région</th>
<th>Adresse</th>
<th>Nom du directeur</th>
<th>Mail</th>
<th>Téléphone</th>
<th>GTC</th>
<th>Date d'installation</th>
</tr>";
$data = mysqli_fetch_array($result);
?>
<table>
<?php foreach ($data as $key => $row):?>
<tr>
<td>
<div class='dropdown-content'>
<button class='dropbtn'>▶</button>
<!-- <a href="modif.php?id=<?=$row['id']?>">Modifier</a> -->
<a href="delete.php?id=<?php echo $row['id']?>">Supprimer</a>
</div>
</td>
<td><div><?php echo $row['AdresseIP'];?></div></td>
<td><div><?php echo $row['AdresseADS'];?></div></td>
<td><div><?php echo $row['Region'];?></div></td>
<td><div><?php echo $row['Adresse'];?></div></td>
<td><div><?php echo $row['NomDirecteur'];?></div></td>
<td><div><?php echo $row['Mail'];?></div></td>
<td><div><?php echo $row['Tel'];?></div></td>
<td><div><?php echo $row['Gtc'];?></div></td>
<td><div><?php echo $row['DateInstall'];?></td>
</tr>
<?php endforeach; ?>
</table>
<?mysqli_close($con);?>
删除.php :
<?php
$connection = mysqli_connect("localhost", "root", "icare", "icare1");
if($connection === false){
die("Connexion échouée " . mysqli_connect_error());
};
$id = $_GET['id'];
$sql = "DELETE FROM magasin WHERE Code=".$id;
$result = mysqli_query($connection,$sql);
if($result){
echo "Enregistrement réussi !";
} else{
echo "Enregistrement échoué : $sql. " . mysqli_error($connection);
}
mysqli_close($connection);
?>
首先,像这样划分查询和表单构建
$data = mysqli_fetch_array($result)
然后
<?php foreach ($data as $key => $row): ?>
<tr>
<td>
<div class='dropdown-content'>
<a href='modif.php?id=<?=$row['id']?>'>Modifier</a>
<a href='delete.php?id=<?=$row['id']?>'>Supprimer</a>
</div>
</td>
</tr>
<?php endforeach ?>
在你的修改中.php
$id = $_GET['id'];
(关注Flumble_的答案,由于我的低代表,我无法发表评论)
也许<?= ?>
是问题所在。尝试用<?php ?>
替换它们
更新:
你也不应该使用短的开放标签(<? ?>
):请参阅这个问题的答案。
此外,当您写入<?php $row['id'] ?>
时,您不会打印该值。你必须写<?php echo $row['id']; ?>
.同样的事情也适用于短开放标签(但不适用于<?=
语法)。
希望这进一步有所帮助。我将继续审查您的代码。
更新 2 :
好吧,我想我明白了。 mysqli_fetch_array
返回一行,而不是整个结果集。所以你必须遍历行,直到mysqli_fetch_array
返回 NULL :
while($data = mysqli_fetch_array($result)) {
?>
<tr>
<!-- ... -->
</tr>
<?php
}
- 在 PHP 生成的表中添加和访问按钮 ID
- 如何将从GWT编译的JS添加/访问到另一个外部HTML / JS项目中
- 通过访问DOM添加功能
- 使用facebookjavascript sdk向FQL添加访问令牌
- 动态添加子组件值时,如何从父组件访问这些值
- Javascript对象/名称空间-如何访问从嵌套函数添加的属性(包括示例)
- 如何在访问时添加Iframe当前域
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- 访问MySQL数据库,使用JavaScript在Google Maps API V3上添加标记
- 如何在没有代码隐藏访问权限的情况下将自定义 HTML 属性添加到 ASP.NET 标签
- 将访问令牌添加到主干中的标头时出现问题:它会更改方法
- jQuery创建一个简单的对象,添加属性并访问它
- Facebook的“赞”按钮如何具有跨域访问权限,可以将HTML添加到父窗口
- WordPress - 访问简码 HTML 并添加表单验证以停止空表单提交
- 尝试循环访问数组并为每个数组添加一个 get 函数
- Content Script 无法访问 Chrome.tabs.*,即使在添加外部 JS 文件后也是如此
- 如何在angularjshttp中添加访问令牌
- Javascript对象和属性:添加&访问属性
- 使用Require()向CreateContext()添加访问节点模块
- 一种为javascript调用的web服务添加访问控制的方法