Первое сообщение на форуме, хотя частый читатель, нужно решение для этого:
php-программа, заполняющая строки html-таблицы:
echo "<td align='left' class='padded'><a href='#' onClick='confirmArrival(".$rowCont['id'].");'>Process</a></td>";
когда пользователь нажимает, чтобы обработать элемент, отображается сообщение подтверждения JavaScript с функцией:
function confirmArrival(itemId)
{
if (confirm("Are you sure you want to process this Item ?\n"+itemId))
{
window.location='processscript_item1.php?itemId='+itemId;
}
}
Мне нужно отобразить значение другой записи php, изменил onClick для отправки 2 аргументов:
echo "<td align='left' class='padded'><a href='#' onClick='confirmArrival(".$rowCont['id'].",".$rowCont['second_item'].");'>Process</a></td>";
и изменил функцию:
function confirmArrival(itemId, second_item)
{
if (confirm("Are you sure you want to process this Item ?\n"+second_item))
{
window.location='processcript_item1.php?itemId='+itemId;
}
}
Получение UnCaught ReferenceError: (здесь отображается значение переменной second_item) не определено
Окно сообщения не отображается, но я вижу передаваемые значения
Любая помощь очень ценится
Спасибо,
Джозеф
Вам нужны цитаты
onClick='confirmArrival(\'".$rowCont['id']."\',\'".$rowCont['second_item']."\')
Я предлагаю делегировать и использовать атрибуты
<td align='left' class='padded'><a href='#'
class = "confirm"
data-id='<?= $rowCont[' id ']?>'
data-second='<?= $rowCont[' second_item '] ?>'>Process</a></td>
так
document.getElementById('tableId').addEventListener("click", function(e) {
const tgt = e.target;
if (tgt.classList.contains('confirm')) {
if (confirm("Are you sure you want to process this Item ?\n" + tgt.dataset.second)) {
tgt.href = 'processcript_item1.php?itemId=' + tgt.dataset.id;
console.info("going to ", tgt.href)
} else {
e.preventDefault(); // cancel link
}
}
})
<table id = "tableId">
<tbody>
<tr>
<td align='left' class='padded'><a href='#' class = "confirm" data-id='ID1' data-second='Second item 1'>Process</a></td>
</tr>
<tr>
<td align='left' class='padded'><a href='#' class = "confirm" data-id='ID2' data-second='Second item 2'>Process</a></td>
</tr>
</tbody>
</table>
это работает, ценю ваши предложения, я заменил ' (одинарную кавычку) в вашем первом образце на " (двойные кавычки), и я получаю окно сообщения с правильным значением переменной и без ошибок, большое спасибо @mplungjan
Если есть ошибки, не используйте первое решение — или проверьте, правильно ли я поставил кавычки, просмотрев исходный код, чтобы увидеть, не пропущено ли одно
спасибо, @mplungjan попробовал ваше первое решение и получил Uncaught SyntaxError: недопустимая escape-последовательность для onClick='confirmArrival(\'".$rowCont['id']."\',\'".$rowCont['second_item' ]."\')