【发布时间】:2015-03-24 22:37:00
【问题描述】:
使用谷歌地图,我使用 mysqli 将事件保存到数据库中。然后这些事件在地图上显示为标记,单击时相关数据会显示在信息框中(名称、日期等)。我希望通过单击删除(删除事件)按钮时从数据库中删除一行来删除事件事件的选项。该按钮包含在使用 javascript 显示的数据中:
var eventContent = $('<div class="event-info">' + '<h4 class="event-name">' + point.name + '</h4><hr>' +
'<span><h5>Date: </h5>' +
'<p class="event-date">' + point.edate + '</p></span>' +
'<p class="event-description">'+point.description+'</p>' +
'</span><button id="remove-event" name="remove-event" class="remove-event btn btn-danger btn-sm" onclick="tidy_maps.delete()" title="Remove Event">Remove Event</button>'+
'</div>');
// Display Event details on marker click
google.maps.event.addListener(event_markers[i], "click", function () {
infowindow.setContent(eventContent[0]);
infowindow.open(map, event_markers[i]);
将其发送到 php 的脚本(removedata.php):
tidy_maps.delete = function() {
$.ajax({
type:'POST',
url:'removedata.php',
success:function(data) {
if(data) {
alert("Are you sure?");
}
else {
alert("ERROR!!!!");
}
}
});
}
removedata.php 是:
$con = mysqli_connect("localhost", "root", "password", "gmaps1");
if (!$con) {
die("Can not connect: " .mysql_error());
}
$sql = "DELETE FROM events WHERE id = 'id' ";
$query = mysqli_query($con, $sql);
if(mysqli_affected_rows($con)) {
echo "Record deleted successfully";
}
mysqli_close($con);
事实上,它不会删除数据库中的行,但是当我更改行时:
$sql = "DELETE FROM events WHERE id = 'id' ";
到特定的 ID 号。示例:
$sql = "DELETE FROM events WHERE id = '5' ";
我在浏览器中运行 removedata.php,它会从数据库中删除 ID=5 的行。单击删除按钮时控制台似乎没有错误,因此它必须发送到PHP脚本正常。
我想在单击“删除”按钮时询问您是否确定,然后从数据库中删除该特定行。
【问题讨论】:
-
您忘记了 ID 中的
$符号。"DELETE FROM events WHERE id = $id "; -
将行id赋给一个变量... $id = 5; $sql = "从事件中删除 id = '$id'";
-
@Brian 不需要引用
$id。 -
你在哪里传递id?如果请求成功,则调用
success:function()- 您需要在发出请求之前显示一个确认框。 -
我没有看到任何
ID或Data从客户端传递到服务器?那么如何删除呢?
标签: javascript php jquery mysql mysqli