我有一个表格,用于显示用户上传的文件以及他们与之共享的用户的电子邮件。用户对每个文件都有一个“删除”链接。当他们单击“删除”时,我会显示一个警报模式,询问他们是否确定要删除它。如果他们继续,那么我通过对 php 文件进行 ajax 调用从数据库中删除该行。
当我进行 ajax 调用类型 POST
并传递 data: key
时,然后在我的 deleteRow.php 文件中写入 $_POST['key']
会给我一个未定义的索引“键”错误。我不确定我是否应该使用 POST 或其他方式。我是 php 新手,所以我很感激你的帮助。如果您有任何问题,请告诉我。
这是我的 index.php 代码:
$objects = getListofObjects('FileDrop');
foreach ($objects as $key=>$object) {
$file = $object['Key'];
$splits = explode('/', $file);
if (end($splits) !== '') {
$presignedUrl = getPresignedUrlForPrivateFile($file, '+20 minutes');
$downloadLink = '<a href="'.$presignedUrl.'">Download</a>';
echo "<script>displayDownloadInRow('$downloadLink', '$key')</script>";
$deleteLink = '<a href="javascript:confirmDeletion('.$key.')">Delete</a>';
echo "<script>displayDeleteInRow('$deleteLink', '$key')</script>";
}
}
这是我的js代码:
<script>
function displayDownloadInRow(link, index) {
var fileData = document.getElementsByClassName('fileName');
fileData[index].innerHTML += "<br>";
fileData[index].innerHTML += link;
}
function displayDeleteInRow(link, index) {
var fileData = document.getElementsByClassName('fileName');
fileData[index].innerHTML += " ";
fileData[index].innerHTML += link;
}
function confirmDeletion(index) {
$('#alertDeleteConfirm').modal('show');
document.getElementById('deleteRow').onclick = function() {
deleteFileRow(index)
}
}
function deleteFileRow(key) {
$.ajax({
type: "PUT",
url: "../FileDrop/deleteRow.php",
data: key,
success: function (result) {
result = JSON.parse(result);
if (result === "deleted") {
$('#alertDeleteSuccess').modal('show');
setTimeout(function () {
window.location.reload(1);
}, 5000);
} else {
$('#alertDeleteFail').modal('show');
setTimeout(function () {
window.location.reload(1);
}, 6000);
}
}
});
}
</script>
答案 0 :(得分:1)
您需要将对象传递给数据,而不是 int/string。所以代码将是
$.ajax({
type: 'POST',
data: {key: key}
...
})
答案 1 :(得分:0)
你需要传递数据。
$.ajax({
type: "POST",
url: 'abc.php',
data: {"key":"value"},
success: function(data){
alert(data.value1);
}
});