Как насчет использования UNION снова?
SELECT
ps.id,
ps.pdf,
ps.emp_id,
ps.emp_type,
external_employee.name AS comemp,
internal_employee.comp_empl_name AS comemp
FROM
pay_slip AS ps
INNER JOIN
internal_employee_master AS internal_employee ON internal_employee.comp_trad_id = ps.trade_id
WHERE
ps.is_deleted = 1 AND ps.id = '".$id."'
AND ps.type = 'internal'
UNION ALL
SELECT
ps.id,
ps.pdf,
ps.emp_id,
ps.emp_type,
external_employee.name AS comemp,
internal_employee.comp_empl_name AS comemp
FROM
pay_slip AS ps
INNER JOIN
external_employee_master AS external_employee ON external_employee.trad_id = ps.trade_id
WHERE
ps.is_deleted = 1 AND ps.id = '".$id."'
AND ps.type = 'external'
Поместите перенаправление внутрь функции, например:
<script>
function confirmRedirect(url, desciption) {
if (confirmWindow(desciption)) {
window.location = url;
}
}
</script>
И назовите его так:
<a href="javascript:confirmRedirect('somlink.php','Are you sure?')">Go!</a>
Отъезд http://www.84bytes.com/2008/06/02/jquery-modal-dialog-boxes/
У них большое разнообразие модальных- ящики для JQuery.
Я думаю, вы должны увидеть http://www.ericmmartin.com/simplemodal/
Модальное диалоговое окно, переопределившее функцию подтверждения JavaScript. Демонстрирует использование onShow, а также отображение модального диалогового окна подтверждения вместо стандартного диалогового окна подтверждения JavaScript.
Вы должны иметь возможность переопределить стандартную функцию window.confirm, написав следующий код.
window.confirm = modalConfirm
тогда вам нужно будет создать такую функцию
function modalConfirm(message){
// put your code here and bind "return true/false" to the click event
// of the "Yes/No" buttons.
}
Это должно работать, хотя я еще не тестировал. Я собираюсь сделать именно это прямо сейчас и расскажу вам, как это работает.
Edit: Я проверил свой пример, приведенный выше, и это было невозможно, вам нужно будет передать функцию обратного вызова вашей перезаписанной функции подтверждения следующим образом:
function modalConfirm(message, callback){
...
$("button.yes").click(function(){
callback(result);
});
...
}
.. чтобы ваш вызов функции выглядел так:
confirm("Are you sure?", function(result){
alert(result);
});
В другом Другими словами, невозможно полностью переопределить функцию window.confirm по умолчанию, не вызывая неприятного цикла, который приводит к зависанию браузера. Я думаю, вам придется изменить ваши подтверждающие звонки, как указано выше.
Мне просто нужно было решить ту же проблему. В итоге я использовал виджет dialog
из JQuery UI . Мне удалось реализовать это без использования обратных вызовов с оговоркой, что диалоговое окно
должно быть частично инициализировано в обработчике события click
для ссылки, с которой вы хотите использовать функцию подтверждения (если вы хотите использовать это более чем для одной ссылки). Это связано с тем, что целевой URL-адрес для ссылки должен быть введен в обработчик событий для нажатия кнопки подтверждения.
Вот мое решение, отведенное для примера. Я использую класс CSS, чтобы указать, какие ссылки должны иметь поведение подтверждения.
<div id="dialog" title="Confirmation Required">
Are you sure about this?
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true
});
$(".confirmLink").click(function(e) {
e.preventDefault();
var targetUrl = $(this).attr("href");
$("#dialog").dialog({
buttons : {
"Confirm" : function() {
window.location.href = targetUrl;
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$("#dialog").dialog("open");
});
}); // end of $(document).ready
</script>
<a class="confirmLink" href="http://someLinkWhichRequiresConfirmation.com">Click here</a>
<a class="confirmLink" href="http://anotherSensitiveLink">Or, you could click here</a>