Я пытаюсь использовать 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
Сначала вы можете установить 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
код…
Других решений пока нет …