javascript — PHP и SweetAlert с использованием цикла

Я пытаюсь использовать Sweetalert (замена для JavaScript-предупреждения) в PHP

но я не знаю, как использовать это с циклом.

Спасибо за любую помощь.

Это то, что я имею до сих пор, но это не дает мне никаких ошибок, и это не работает 🙁

JavaScript

<script src="sweetalert.min.js"></script>
<link rel="stylesheet" type="text/css" href="sweetalert.css">
<script type="text/javascript">
$("#SweetAlert<?php echo($contact_id);?>").click(function() {
sweetAlert({
title: "Make Changes ?",
text: "You Are about to Change <?php echo($contact_lastname);?> (<?php echo($splitName[0]);?> - <?php echo($splitName[1]);?>)",
type: "warning" ,
showCancelButton: true,
confirmButtonColor: "#2e8c37",
confirmButtonText: "Yes, Continue",
cancelButtonText: "No, Cancel",
closeOnConfirm: false,
closeOnCancel: true
},
function(isConfirm){
if (isConfirm) {
window.location.href = 'main.php?id=<?php echo($contact_id);?>&groupid=<?php echo($group_id);?>&unit=<?php echo($contact_lastname);?>';
}
});
});
</script>

PHP

// PHP LOOP: START

echo("<A HREF=\"#\" id=\"SweetAlert$contact_id\"><img src=\"button_ok_2.png\" onmouseover=\"this.style.cursor='pointer'\" border=\"0\" border=\"0\" title=\"Name # $contact_lastname\"></A>\n");

// PHP LOOP: END

-1

Решение

Сначала вы можете установить css class на все ваши «Sweet Alert Links», чтобы вы могли захватить их всех с помощью jquery, как это: <a class="SweetAlertLink" ... тогда тебе не нужно id для них, чтобы выбрать их по id(хотя вы можете сделать это с id, но это проще с class) — вам не нужно назначать какие-либо CSS для этого класса в вашем CSS. Это просто, чтобы иметь возможность выбрать все эти конкретные ссылки в JQuery

Тогда вы можете использовать data Атрибут, чтобы установить разные данные для каждой ссылки, а затем использовать его в вашем jquery. Таким образом, вы можете иметь <a <a class="SweetAlertLink" data-contact_lastname="Lastname-1" ... Это означает, что фамилия этой записи — «Фамилия-1», так что вы можете установить все эти данные в цикле следующим образом: <a class="SweetAlertLink" data-contact_lastname="'.$contact_lastname.'"...

И тогда в вашем jquery вы можете получить доступ к этим атрибутам данных, как это: $(this).data("contact_lastname") в вашем $(".SweetAlertLink").click(function() {метод.

Но потому что в function(isConfirm){ this не относится к <a> пометить больше, мы должны назначить объект <a> элемент в начале $(".SweetAlertLink").click(function() { такой метод curObj = $(this); а затем в function(isConfirm){ функция ссылается на этот объект вместо this как это: curObj.data("contact_lastname")

Итак, ваш код будет выглядеть так:

JavaScript

<link rel="stylesheet" type="text/css" href="sweetalert.css">
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="sweetalert.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var curObj;
$(".SweetAlertLink").click(function() {
curObj = $(this);
sweetAlert({
title: "Make Changes ?",
text: "You Are about to Change "+$(this).data("contact_lastname")+" ("+$(this).data("split_name1")+" - "+$(this).data("split_name2")+")",
type: "warning" ,
showCancelButton: true,
confirmButtonColor: "#2e8c37",
confirmButtonText: "Yes, Continue",
cancelButtonText: "No, Cancel",
closeOnConfirm: false,
closeOnCancel: true
},
function(isConfirm){
if(isConfirm){
window.location.href = 'main.php?id='+curObj.data("contact_id")+'&groupid='+curObj.data("group_id")+'&unit='+curObj.data("contact_lastname");
}
});
});
});
</script>

PHP

<?php
// PHP LOOP: START

$string = '<a class="SweetAlertLink" href="#" id="SweetAlert'.$contact_id.'" data-contact_lastname="'.$contact_lastname.'" data-split_name1="'.$splitName[0].'" data-split_name2="'.$splitName[1].'" data-contact_id="'.$contact_id.'" data-group_id="'.$group_id.'">';
$string .= '<img src="button_ok_2.png" onmouseover="this.style.cursor=\'pointer\'" border="0" border="0" title="Name # '.$contact_lastname.'">';
$string .= '</a><br>';
echo $string;

// PHP LOOP: END
?>

Note1: При использовании этого метода вам не нужно иметь код JavaScript после каждого элемента, и вам нужно только иметь этот код JavaScript вверху вашей страницы в вашем <head> раздел

Заметка 2: Я предполагаю, что у вас есть правильные значения в переменных PHP в вашем цикле, как $contact_id или же $contact_lastname или же $group_id или же …

Заметка 3: Я дал несколько временных имен data атрибуты, такие как data-contact_lastname или же data-contact_id или … Вы можете изменить их так, как вам удобно. Но помните, если вы измените их, вы должны изменить их обоих в своем php и в вашем соответствующем JavaScript код…

1

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

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

По вопросам рекламы [email protected]