Я пытаюсь создать сеть для загрузки, составления списка, загрузки и удаления с Google Диска. все в порядке (просмотр и список работает) Моя проблема - это моя кнопка удаления, когда я нажимаю кнопку удаления, она просто зацикливает мой список и говорит maaf. (maaf = извините, не работает)
вот моя кнопка удаления ajax:
<script type = "text/javascript">
function deleteItem(){
$.ajax({
url : "del.php",
type : "POST" ,
data : {
data_id : $no,
},
success: function()
{
var data_arr = jQuery.parseJSON(data);
var status = data_arr.status;
if (status == 'succsess'){
location.reload();
//alert('Maaf')
}else{
alert('Maaf')
//location.reload()
}
}
});
}
</script>
вот мой del.php
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';
$client = new Google_Client();
$client->setClientId('my_id');
$client->setClientSecret('my_secret');
$sting = file_get_contents("token.json");
$json_a = json_decode(file_get_contents("token.json"), true);
$client->setAccessToken($json_a);
$service = new Google_DriveService($client);
$folder = 'code_folder';
$optParams = array(
'maxResults' => 10,
'q' => "'".$folder."' in parents",
);
$no = $_POST['no'];
$service->files->delete($no);
$data['status'] = 'success';
echo json_decode($data);
?>
Кстати, я вызываю кнопку, используя другой ajax.
<script type = "text/javascript">
$.ajax({
url : "list.php",
type : "GET" ,
success: function(data,alert_message)
{
var data_arr = jQuery.parseJSON(data);
var status = data_arr.status;
var result = data_arr.data_arr;
if (status == 'success'){
jQuery.each( result,function( i, items){
var content = '<tr id = "'+items.no+'">';
content += '<td>';
content += '<a href = "javascript:void(0);" class = "btn btn-danger btn-delete" data_id = "'+items.no+'">delete</a>';
content += '</td>';
content += '</tr>';
$('.list').append(content);
$('.btn-delete').on('click', function() {
//console.info("");
$no = $(this).data("no");
deleteItem($no);
});
});
}else{
alert('Gomenasai');
}
}
});
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Быстро взглянув на свой код, вы, кажется, звоните
deleteItem($no)
но в вашей функции вы не допускаете никаких параметров.
function deleteItem()
Чтобы передать переменную, вам необходимо ее разрешить:
<script type = "text/javascript">
function deleteItem(no){
$.ajax({
url : "del.php",
type : "POST" ,
data : {
data_id : no,
},
success: function()
{
var data_arr = jQuery.parseJSON(data);
var status = data_arr.status;
if (status == 'succsess'){
location.reload();
//alert('Maaf')
}else{
alert('Maaf')
//location.reload()
}
}
});
}
</script>
Вам нужно будет уточнить, что такое строка 20?
в строке 20 это $no = $_POST['no']; $service->files->delete($no);, что означает, что вам нужно передать аргумент как «нет». т.е. data: { 'no': no} в коде ajax
Когда ты такой неопределенный, мне действительно трудно помочь. Вы получаете ошибки консоли? Какая часть не работает?
извините, я использую элемент проверки (Q). в консоли коснитесь его, скажите: ReferenceError: no не определено [Подробнее] tgs_mp: 280: 11 эта строка: data_id: $ no,
что вы использовали со своей функцией? function deleteItem (no) {или function deleteItem ($ no) {
спасибо, ребята, я уже нашел свою проблему .. это в моем javascript его должен быть data-id, но мой - data_id ..
по-прежнему не работает .. когда я открываю del.php, он говорит, что Примечание: неопределенный индекс: нет в C: \ xampp \ htdocs \ tgs_mp \ del.php в строке 20