我有一个脚本,可以改变输入字段的值:
<script language="javascript">
function klientid() {
var getid = document.getElementById("getidfromsearch");//results
var klid = document.getElementById("idklienta"); //input field
if(getid != "0") {
klid.value = getid.textContent;
}
</script>
是一个搜索引擎,结果是这样打印出来的:
<?php
while($rowmilion = mysqli_fetch_array($resultmilion)) {
?>
<a href="javascript:klientid()">
<table>
<tr>
<td style="font-weight:bold; width: 160px; text-align:right;">ID:</td>
<td style="width:200px;" id="getidfromsearch"><?php echo $rowmilion['id']; ?></td>
</tr>
</table>
</a>
<?php } ?>
现在,当结果只有一条记录并且我单击链接时,它确实改变了输入字段的值
当结果包含多个记录时,无论我单击哪个链接,它总是从第一个记录中获取值,例如:
ID: 100
ID: 200
ID: 300
所以当我点击第三个位置时,它仍然会将输入字段的值更改为100而不是300。
我猜,这是因为所有的记录得到相同的"ID"…但是,我还是做不到。
你应该给每个结果一个唯一的ID,否则它会搞砸你的getElementById搜索。
你的JS代码:<script language="javascript">
function klientid(domElmtId) {// ** I added a parameter
var getid = document.getElementById(domElmtId);//results
var klid = document.getElementById("idklienta"); //input field
if(getid !== null) {// ** This is better
klid.value = getid.textContent;
}
</script>
Php代码
<?php
$count = 0;//** I added a variable to give each result a different ID
while($rowmilion = mysqli_fetch_array($resultmilion)) {
?>
<a href="javascript:klientid('result<?php echo $count; ?>')">
<table>
<tr>
<td style="font-weight:bold; width: 160px; text-align:right;">ID:</td>
<td style="width:200px;" id="result<?php ?>"><?php echo $rowmilion['id']; ?></td>
</tr>
</table>
</a>
<?php
$count += 1;//** to make different IDs
} ?>