multiple data doesnt deleted from table using Ajax in wordpress

I was define following script for deleting multiple data. Please check the attached image.enter image description here I will select multiple title and click deleted title button data will be deleted. I checked the log there is showing following error. I cant understand how to fix this error.

IDs received for deletion: Array
(
[0] => 10
1 => 8
)

check error: %d,%d
Prepared query for deletion: DELETE FROM wp_slf_schedule_post_title_log WHERE id IN (%d,%d)
IDs received for deletion: 0

PHP script

public function otslf_delete_multiple_blog_title() {

                //check_ajax_referer('ai-seo-content-nonce', 'nonce');
                if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'ai-seo-content-nonce' ) ) {
                wp_send_json_error( __( 'Invalid nonce.', 'super-fast-blog-ai' ) );
                }   
                error_log( $_POST['nonce'] ); // Debugging line
            
                global $wpdb;
                $table_name = $wpdb->prefix . 'slf_schedule_post_title_log';
                $ids = isset($_POST['id']) ? array_map('intval', $_POST['id']) : [];


           error_log('IDs received for deletion: ' . print_r($ids, true)); // Debugging line
        
                $placeholders = implode(',', array_fill(0, count($ids), '%d'));
                $query = "DELETE FROM $table_name WHERE id IN ($placeholders)";

                error_log('check error: ' . $placeholders);                  // Debugging line
                error_log('Prepared query for deletion: ' . $query);         // Debugging line
                
                $deleted = $wpdb->query($wpdb->prepare($query, $ids)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery

                error_log('IDs received for deletion: ' . $deleted);

                if ($deleted !== false) {
                    wp_send_json_success(['message' => 'Selected titles deleted successfully.']);
                } else {
                    wp_send_json_error(['message' => 'Failed to delete selected titles.']);
                }
            }

jQuery script

jQuery(document).ready(function($) {
                        jQuery('#select_title').click(function() {
                            let isChecked = jQuery(this).is(':checked');
                            jQuery('input[name="select_title[]"]').prop('checked', isChecked);
                        });          
                        jQuery('#delete-selected').click(function(e) {
                            e.preventDefault();

                            let id = jQuery('input[name="select_title[]"]:checked').map(function() {
                                return jQuery(this).val();
                            }).get();

                            console.log('Selected IDs:', id);

                            if (id.length === 0) {
                                jQuery.toast({ text: "Please select at least one title to delete.", 
                                heading: 'Failed', 
                                icon: 'error',
                                showHideTransition: 'fade',
                                allowToastClose: true, 
                                hideAfter: 3000, 
                                stack: 5, 
                                position: 'top-right', 
                            });                        
                            }
                    
                            jQuery.ajax({
                                url: ajax_ob.ajax_url,
                                type: 'POST',
                                data: {
                                    action: 'otslf_delete_multiple_blog_title',
                                    id: id,
                                    nonce: ajax_ob.nonce
                                },
                                beforeSend: function(xhr) {
                                    jQuery('#delete-selected').append('<span class="loading-spinner"></span>');
                                },
                                success: function(response) {

                                    console.log('Response:', response);
                                    
                                    if (response.success) {
                                        jQuery('input[name="select_title[]"]:checked').closest('tr').remove();
                                        jQuery.toast({
                                            text: "!Selected Title Deleted Successfully",
                                            heading: 'success', 
                                            icon: 'success', 
                                            showHideTransition: 'fade', 
                                            allowToastClose: true, 
                                            hideAfter: 4000, 
                                            stack: 15, 
                                            position: { left : 'auto', right : 100, top : 153, bottom : 'auto' },
                                            textAlign: 'left',
                                            loader: true, 
                                            loaderBg: '#9EC600', 
                                        });
                                        
                                       /*  setTimeout(function() {
                                            location.reload();
                                        }, 2000); */ 

                                    } else {
                                        jQuery.toast({ text: "Please select at least one title to delete.", 
                                            heading: 'Failed', 
                                            icon: 'error',
                                            showHideTransition: 'fade',
                                            allowToastClose: true, 
                                            hideAfter: 3000, 
                                            stack: 5, 
                                            position: 'top-right', 
                                        });
                                    }
                                },
                            
                                complete: function() {
                                    jQuery('#delete-selected').find('.loading-spinner').remove();
                                },

                                error: function(xhr, status, error) {
                                    jQuery.toast({ text: 'An error occurred: ' + error, 
                                        heading: 'NOTE', 
                                        icon: 'error',
                                        showHideTransition: 'fade',
                                        allowToastClose: true, 
                                        hideAfter: 3000, 
                                        stack: 5, 
                                        position: 'top-right', 
                                    });
                                }
                            });
                        });
                    });