请考虑以下事项:
<? php foreach($queryResult as $res) : ?>
// output all table columns
<form onsubmit="return javascriptFunction(); " method="post">
<button id="b">edit</button>
</form>
<?php endforeach; ?>
显然,当调用javascript函数时,按钮的id是相同的,所以:
document.getElementById(b).value;
没有像预期的那样工作。有可能:
我完全知道它是如何发生的,看起来没有办法解决它。这可能吗?
答案 0 :(得分:2)
要为每个按钮指定一个不同的ID,您可以这样做:
<?php
$i = 1;
foreach($queryResult as $res) { ?>
// output all table columns
<form onsubmit="return javascriptFunction(); " method="post">
<button id="element-<?= $i ?>">edit</button>
</form>
<?php $i++; } ?>
对于第二个问题:如果您想将按钮的ID传递给javascriptFunction
,您可以通过以下方式修改代码:
return javascriptFunction(<?= '\'element-'. $i . "'" ?>);
当调用javascriptFunction
时,它将作为参数传递按钮的id,你可以在函数中使用它
答案 1 :(得分:0)
你可以使用forach
然后你不必跟踪id迭代器
foreach($queryResult as $id=>$res) { ?>
// output all table columns
<form onsubmit="return javascriptFunction(); " method="post">
<button id="element-<?php echo $id ?>">edit</button>
</form>
<?php $i++; } ?>
另外,FWIW,当然有多个具有相同ID的元素的可怕做法,但document.querySelectorAll('#someID');
会在大多数浏览器中为您提供多个元素。