javascript — модал Bootbox не отображается, если я нажимаю на ссылку, которая содержит & quot; href & quot;

Итак, я использую bootbox, который работает отлично, но когда я хочу отправить переменные в ссылке с PHP, тогда весь javascript работает, но не bootbox.

—-Это работает—-

<a href='#' class="alert_without_href">I dont have an href</a>
<script>
$(document).ready(function()
{
$('a.alert_without_href').on('click', function()
{
alert('This works');
bootbox.alert("This ALSO works");
});
});
</script>

—-Это не работает —-

<a href="?name=Jacob" class="alert_with_href">I have an href</a><br><br>
<script>
$(document).ready(function()
{
$('a.alert_with_href').on('click', function()
{
alert('This works');
bootbox.alert("This one DOESNT work"); <---- PROBLEM IS HERE
alert('This also works');
});
});
</script>

—-И, наконец, для отображения —-

<?php
if ($_SERVER['REQUEST_METHOD'] === 'GET')
{
echo 'Hello ' . $_GET["name"];
}
?>

Мне нужно передать переменную в ссылку, она не может быть удалена. Как я могу это исправить?

заранее спасибо

—-РЕДАКТИРОВАТЬ—-
Я добавил изображение таблицы ниже с объяснением того, что именно должно быть сделано

Таблица пользователей

—ТОЛЬКО ЧИТАЙТЕ, ЕСЛИ ВЫ ПИЛИТЕ ИЗОБРАЖЕНИЕ
Таким образом, каждая ссылка в разделе «Действие» в таблице создает ссылку с переменной уникального идентификатора пользователя. Когда он нажимается, я проверяю, установлен ли $ _GET [‘remove_id’], а затем запускаю запрос MySQL, чтобы удалить этого человека с этим идентификатором.

Таким образом, идея Bootbox заключается в том, чтобы быть подтверждением, если вы хотите удалить пользователя, я не хочу использовать обычное оповещение (»), потому что это можно отключить.

постскриптум функция удаления работает, я просто хочу добавить подтверждение, используя bootbox.

0

Решение

Модалы начальной загрузки (и, следовательно, Bootbox) не генерируют события блокировки, поэтому, если вы хотите, чтобы что-то происходило при нажатии на гиперссылку, вам нужно запретить поведение по умолчанию (навигация по страницам). Что-то вроде:

<a href="?name=Jacob" class="alert_with_href">I have an href</a><br><br>
<script>
$(document).ready(function() {
$('a.alert_with_href').on('click', function(e) // <-- add an event variable
{
e.preventDefault(); // <-- prevent the event
bootbox.alert("I am an alert!");
});
});
</script>

Поскольку вы сказали, что хотите что-то подтвердить, используйте bootbox.confirm и немного AJAX:

<a href="?name=Jacob" class="alert_with_href" data-name="Jacob">I have an href</a><br><br>
<script>
$(document).ready(function() {
$('a.alert_with_href').on('click', function(e) // <-- add an event variable
{
e.preventDefault(); // <-- prevent the event

var data = { name = $(this).data('name') };
bootbox.confirm("Really delete?", function(result){
if(result){
$.post('your-url', data)
.done(function(response, status, jqxhr){
// do something when successful response
})
.fail(function(jqxhr, status, error){
// do something when failure response
});
}// end if
}); // end confirm
});
});
</script>

Я также добавил атрибут данных, чтобы упростить получение значения для публикации (не используйте GET-запрос для выполнения действия удаления). Я предполагаю, что вы перезагрузите страницу после успешного удаления, или вы можете использовать .remove удалить «строку», содержащую элемент, который вы удаляете

1

Другие решения

Других решений пока нет …