【发布时间】:2018-03-16 00:11:11
【问题描述】:
我有一个显示数据库数据的 PHP 文件。我使用while() 来显示每条记录。
我的 PHP 文件:
<?php
$flightTicketsSQL = "SELECT * FROM `flightbookings` WHERE username='$user' AND cancelled='no'";
$flightTicketsQuery = $conn->query($flightTicketsSQL);
while($flightTicketsRow = $flightTicketsQuery->fetch_assoc()) { ?>
<tr>
<td class="tableElementTags text-center"><?php echo $flightTicketsRow["bookingID"]; ?></td>
<td class="tableElementTags text-center"><?php echo $flightTicketsRow["origin"]; ?></td>
<td class="tableElementTags text-center"><?php echo $flightTicketsRow["destination"]; ?></td>
<td class="tableElementTags text-center"><?php echo $flightTicketsRow["date"]; ?></td>
<td class="tableElementTags text-center"><?php echo $flightTicketsRow["mode"]; ?></td>
<td class="text-center"><span class="fa fa-remove tableElementTags pullSpan" id="deleteAccount"></span></td>
</tr>
<?php } ?>
如果用户点击最后一个 <td>(带有 Font Awesome 图标的那个),我希望从数据库中删除具有特定 bookingID 的记录。
为此,我需要使用 jQuery .val() 识别值
我的 JS 文件:
var id = $("**WHAT DO I PUT HERE ?**").val();
$('#deleteAccount').click(function() {
$.ajax({
type: "POST",
url: 'cancelTicket.php',
data: { bookingID : id },
success : function() {
alert("Cancelled");
}
});
});
我的 cancel.php 文件:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$user = $_SESSION["username"];
$id = $_POST["bookingID"];
$cancelFlightBookingsSQL = "UPDATE `flightbookings` SET cancelled='yes' WHERE bookingID='$id'";
$cancelFlightBookingsQuery = $conn->query($cancelFlightBookingsSQL);
我的问题是如何让 jQuery 识别用户想要取消的预订?我的意思是如何为<td> 分配一个id,以便我可以在JS 中检索它的值。
我知道我无法正确地提出这个问题。对此感到抱歉。
谢谢
【问题讨论】:
-
实际被点击的
id="deleteAccount"元素在哪里? -
1.您没有
#deleteAccount元素。 2. 确保您没有在每一行上重复id。 3.使用this引用从按钮在点击处理程序中获取id以获取被点击的元素 -
@David 它将在
<span class="fa fa-remove tableElementTags pullSpan"></span>中。我没有添加它。我将编辑问题并添加它。 -
哪个
td持有应该在请求中发送的值? -
@Samuel 不要那样做。
on*属性是一种应该避免的反模式。使用不显眼的事件处理程序。