Javascript < /li>
jquery < /li>
WordPress < /li>
php < /li>
< /ul>
Я не могу выяснить, почему диалог не откроется. Он открывался ранее, и после того, как в отладчике показано, что код называется. Результаты этого можно увидеть на выходе консоли из консоли браузера.
Код: Выделить всё
Group row clicked cstjrnl-forms.js:51:11
group_id: 1 cstjrnl-forms.js:53:11
XHRPOST
https://sloansweb.com/wp-admin/admin-ajax.php
[HTTP/2 200 232ms]
success true
data { grp_id: "1", grp_name: "Mood", grp_order: "100", … }
grp_id "1"
grp_name "Mood"
grp_order "100"
grp_descr "Emotional well-being, chronic or long-term conditions"
grp_article ""
grp_type "Metric"
grp_created "2023-09-04 09:29:49"
grp_modified "2023-11-29 13:01:36"
isOpen cstjrnl-forms.js:76:14
Object { }
: Object { jquery: "3.7.1", constructor: jQuery(selector, context)
, length: 0, … }
cstjrnl-forms.js:77:14
Dialog Position cstjrnl-forms.js:79:14
Object { }
: Object { jquery: "3.7.1", constructor: jQuery(selector, context), length: 0, … }
< /code>
js-код для инициализации диалога: < /h2>
// Initialize modal window
jQuery(document).ready(function ($) {
// Set up modal window
jQuery('#cstjrnl-metric-group').dialog({
modal: true,
autoOpen: false,
hide: { effect: "blind", duration: 1000 },
show: { effect: "blind", duration: 1000 },
position: { my: "center", at: "center", of: window },
minWidth: 500,
title: "Edit Metric Group"
});
< /code>
код для открытия диалога < /h2>
// Open modal window when row in list is clicked
$('#group-table tbody tr').on('click', function () {
// $('#group-table tbody tr.metric-group-row').on('click', function () {
// Get group_id
console.log('Group row clicked');
var group_id = $(this).data('id');
console.log('group_id: ' + group_id);
// Call via Ajax to get field data
$.ajax({
type: 'POST',
url: ajax_object.ajax_url,
data: {
action: 'cstjrnl_get_metric_group',
grp_id: group_id
},
success: function (xhr, status, error) {
if (xhr.success) {
// Process the group data
var data = xhr.data;
jQuery('#cstjrnl-metric-group #grp_name').val(data['grp_name']);
jQuery('#cstjrnl-metric-group #grp_descr').val(data['grp_descr']);
jQuery('#cstjrnl-metric-group #grp_order').val(data['grp_order']);
jQuery('#cstjrnl-metric-group #grp_type').val(data['grp_type']);
jQuery('#cstjrnl-metric-group').dialog("open");
var isOpen = jQuery('#cstjrnl-metric-group').dialog("isOpen");
if (!isOpen) {
console.log("Dialog did not open");
}
console.log("isOpen");
console.log(isOpen);
var position = $("#cstjrnl-metric-group").dialog("option", "position");
console.log("Dialog Position ");
console.log(position);
} else {
// Handle the error
jQuery('#cstjrnl-metric-group').dialog("close");
}
},
error: function (xhr, status, error) {
console.log("======= Start of error response ============");
console.log('Ajax Error');
console.log("======= responseText ============");
console.log(xhr.responseText);
console.log("======= xhr ============");
console.log(xhr);
console.log("======= status ============");
console.log(status);
console.log("======= error ============");
console.log(error);
console.log("======= End of error response ============");
console.log("===================");
}
});
});
, сгенерированный в скрипте PHP
$html .= `
Save
Cancel
Group Name:
Sort Order:
Description:
Group Type:
Metric
Event
Save
Cancel
`;
// error_log("\$html: " . print_r($html,true));
return $html;
< /code>
использовал отладчик в Firefox, чтобы проверить, какой код выполняется, и инспектор для проверки сгенерированной HTML -страницы. < /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -wont-open