PHP到JavaScript确认消息框变量未定义(但有值)



论坛上的第一篇文章虽然经常阅读,但需要一个解决方案:

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>

最新更新