论坛上的第一篇文章虽然经常阅读,但需要一个解决方案:
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个args:
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;
}
}
Getting UnCaught ReferenceError:(此处显示的second_item变量值(未定义
消息框没有显示,但我可以看到通过的值
任何帮助都非常感谢
谢谢,
Joseph
您需要报价
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.log("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>