【发布时间】:2012-03-28 18:33:51
【问题描述】:
我有一个在 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 创建一个变量,以便每个循环项生成不同的名称?
【问题讨论】:
-
代码哪里有循环?
-
您将生成
closest1、closest2等...,但正在寻找closest -
对,我不知道如何将寻找“closest1,closest2”写入函数
-
只需执行
onClick="setAuthor(this)"并将函数的签名更改为function setAuthor(element) {,然后执行var author = element.innerHTML -
是的,这行得通。但是它将每个名称输入到相同的输入元素中。我已经编辑了原始帖子以显示每个作者都有一个与之关联的输入字段。我会在函数中添加一个计数器来分配函数吗?
标签: php javascript function loops onclick