Я использую функцию сортировки jQuery внутри плагина Wordpress, чтобы пользователь мог установить порядок отображения нескольких элементов списка. Когда пользователь повторно заказывает элементы, jquery .ajax() должен отправить запрос на скрипт обработки, чтобы обновить таблицу.Правильный способ использования AJAX для обновления базы данных Wordpress
Это JQuery:
jQuery("#sortable").sortable({
update : function() {
var serial = jQuery('#sortable').sortable('serialize'); //split up each li into an array item
jQuery("body").css("cursor", "progress");
jQuery.ajax({
url: "../wp-content/plugins/libhours/includes/_process.php",
type: "post",
data: serial,
success: function(msg){
jQuery("body").css("cursor", "default");
},
error: function(){
alert("Error updating the table via AJAX.");
jQuery("body").css("cursor", "default");
}
})
}
});
URL-адрес находится, и все работает, пока я не получаю сообщение об ошибке из файла _process.php
Call to a member function update() on a non-object in ... _process.php
Я не понимаю эту проблему, если, скажем, , Я обращаюсь к файлу _process.php через форму представления; вставка и обновление записей работают нормально. Вот функция обновления для справки ...
function cp_libhours_update_area_order($data) {
global $wpdb, $table_prefix;
$i = 1; //our counter to set the rank of each record NOTE: start at 1...0 will be reserved for new entries
foreach ($data as $area) {
// Execute statement:
$update_sql = $wpdb->update($table_prefix . library_areas,
array(
'displayOrder' => $i
),
array(
'id' => $area
)
);
$i++;
}
}
if(isset($_POST['area'])) cp_libhours_update_area_order($_POST['area']);
Perfect. № 2 - это, безусловно, путь. Благодарю. – Ravioli87
Хорошо! Пожалуйста :) –