gpt4 book ai didi

php - JavaScript 函数中唯一 ID 的变量

转载 作者:行者123 更新时间:2023-11-30 18:30:04 25 4
gpt4 key购买 nike

我有一个在 PHP foreach 循环中调用的 onclick 事件,用于我需要单击其作者姓名的多个项目。只生成了一个名称,所以我知道每个 HTML 元素必须有一个唯一的 ID。我已经有一个变量 $objkey 用于循环中使用的计数器,所以我将它附加到 id。

<?php
//This is the item that appears in the loop.
//Currently, clicking on each one that is generated only generates the first author name
//The correct author as passed by PHP displays in the loop.
//$closest is the value of the author's name.
echo 'Click name to add <span><button id="closest' . $objkey . '" onClick="setAuthor()">' . $closest . '</button></span><br />';
?>

我已经完成了 print_r('$objkey); 并传递了计数器的适当值。

我希望将此按钮元素 $closest 的值传递给输入字段。我已将变量附加到输入的 id 和 name 元素(不确定是否有帮助)(更新:每个需要获取值的作者都有一个输入字段):

<?php 
echo '<input id="author_name' . $objkey . '" type="text" name="author_name' . $objkey . '" value="' . $author . '" />';
?>

我卡住的地方是我的函数:

<script type="text/javascript">function setAuthor() {
var author = document.getElementById("closest").innerHTML;
window.alert(author);
document.forms["myform"].elements["author_name"].value = author; }</script>

如何在函数中为唯一 ID 创建一个变量,以便每个循环项生成不同的名称?

最佳答案

一种方法是将 this 传递给 setAuthor 函数:

<?php
//This is the item that appears in the loop.
//Currently, clicking on each one that is generated only generates the first author name
//The correct author as passed by PHP displays in the loop.
//$closest is the value of the author's name.
echo "Click name to add <button id='closest_{$objkey}' onClick='setAuthor(this)'>{$closest}</button><br/>";
?>

使用这种方法,您可以访问 setAuthor 中的元素:

<script type="text/javascript">
function setAuthor(el) {
var author = el.innerHTML,
id = el.id.replace(/^closest_/, '');
if (console) {
console.log(author);
}
document.forms["myform"].elements["author_name_" + id].value = author;
}
</script>

但是,您不应该为每个元素设置内联 onclick。您应该使用事件注册功能。

关于php - JavaScript 函数中唯一 ID 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com