Mehrere Daten werden mit AJAX in WordPress nicht aus der Tabelle gelöschtPhp

PHP-Programmierer chatten hier
Anonymous
 Mehrere Daten werden mit AJAX in WordPress nicht aus der Tabelle gelöscht

Post by Anonymous »

Ich habe das folgende Skript zum Löschen mehrerer Daten definiert. Bitte überprüfen Sie das beigefügte Bild. Ich werde mehrere Titel ausgewählt und klicken, um gelöschte Title -Taste zu löschen. Ich habe das Protokoll überprüft, das den folgenden Fehler angezeigt wird. Ich kann nicht verstehen, wie ich diesen Fehler beheben kann. (%d,%d)
für das Löschen empfangene IDs: 0 < /p>
PHP -Skript < /strong> < /p>

Code: Select all

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 -Skript [/b]

Code: Select all

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('');
},
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',
});
}
});
});
});

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post