$wpdb->insert( $genres_table, array( 'ctp_genero' => $ctp_genero, 'ctp_padre' => $ctp_padre ) ); echo '

genre added successfully

'; echo ''; } // Display genres with sorting links $genres = $wpdb->get_results("SELECT * FROM $genres_table ORDER BY $orderby $order"); // Add a wrapper div with horizontal scrolling $headerurl = ''; echo ''; echo ''; echo ''; foreach ($genres as $genre) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; echo '
' . $headerurl . 'id&order=' . (($orderby == 'id' && $order == 'ASC') ? 'DESC' : 'ASC') . '">id ' . $headerurl . 'ctp_genero&order=' . (($orderby == 'ctp_genero' && $order == 'ASC') ? 'DESC' : 'ASC') . '">genre ' . $headerurl . 'ctp_padre&order=' . (($orderby == 'ctp_padre' && $order == 'ASC') ? 'DESC' : 'ASC') . '">parent acción
' . esc_html($genre->id) . '' . esc_html($genre->ctp_genero) . '' . esc_html($genre->ctp_padre) . 'edit | '; echo 'id), 'delete_genre_' . esc_attr($genre->id)) . '" onclick="return confirm(\'This action is irreversible. Are you sure you want to delete this genre?\');">delete
'; echo ''; // Close the wrapper div // Add JavaScript for editable fields and AJAX request echo ''; echo ''; } // Register the AJAX handler for updating genre fields add_action('wp_ajax_update_genre_field', 'update_genre_field'); // Function to handle the AJAX request for updating the genre field function update_genre_field() { // Verify the nonce check_ajax_referer('update_genre_nonce', '_ajax_nonce'); global $wpdb; $genres_table = $wpdb->prefix . 'album_collection_genres'; // Get the data from the AJAX request $genre_id = intval($_POST['id']); $column = sanitize_text_field($_POST['column']); $value = sanitize_text_field($_POST['value']); // Update the specific column in the genre table $wpdb->update( $genres_table, array($column => $value), array('id' => $genre_id) ); // Return a success response wp_send_json_success('Input updated successfully'); } ?>