Кнопка AJAX, вызванная другим AJAX, не работает - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь создать веб для загрузки, создания списка, загрузки и удаления с Google Диска. все выглядит хорошо (просмотр и составление списка) Моя проблема в том, что моя кнопка удаления, когда я нажимаю кнопку удаления, просто зацикливает мой список и говорит «Мааф». (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>

здесь My 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.log("");
        $no = $(this).data("no");
        deleteItem($no);
      });

            }); 
            }else{
            alert('Gomenasai');
        }

    }       

});
</script>

1 Ответ

0 голосов
/ 02 января 2019

Быстро просматривая код, вы, кажется, звоните

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...