0

在我的 PHP/MySQL while 循环中为活动提要选择数据时,我试图在每个帖子下方显示评论,以便当您单击“显示”时,它会显示所有评论。

我在 while 循环中使用了以下代码(因此每次单独更新都会动态显示多次):

<script language="javascript"> 
function toggle' . $act_item_id . '() {
    var ele = document.getElementById("toggleText' . $act_item_id . '");
    var text = document.getElementById("displayText' . $act_item_id . '");
    if(ele.style.display == "block") {
            ele.style.display = "none";
        text.innerHTML = "show";
    }
    else {
        ele.style.display = "block";
        text.innerHTML = "hide";
    }
} 
</script>

<a id="displayText' . $act_item_id . '" href="javascript:toggle' . $act_item_id . '();">show</a>
<div id="toggleText' . $act_item_id . '" style="display: none">' . $responseList . '</div>

' . $act_item_id 。' 包含更新的 ID,使所有内容都独一无二。

单击显示时,JavaScript 不显示 div。

仅供参考:内容通过 AJAX 调用加载到另一个页面。

AJAX调用如下:

function list_activity(){
    var hr = new XMLHttpRequest();
    hr.onreadystatechange = function(){
    if (hr.readyState==4 && hr.status==200){
    document.getElementById("viewActivity").innerHTML = hr.responseText;
    }
    }
    hr.open("GET", "listActivity.php?t=" + Math.random(), true);
    hr.send();
}
4

1 回答 1

0

我不完全确定您可以创建和调用这样的 JS 函数。此外,我认为没有任何理由为每个部分重新创建函数。您为什么不简单地参数化您的功能并每次更改参数?

定义一次函数

<script>
function toggle(act_item_id) {
    var ele = document.getElementById("toggleText' . act_item_id . '");
    var text = document.getElementById("displayText' . act_item_id . '");
    if(ele.style.display == "block") {
        ele.style.display = "none";
        text.innerHTML = "show";
    }
    else {
        ele.style.display = "block";
        text.innerHTML = "hide";
    }
} 
</script>

然后你可以循环

while (some condition) {
    ...
    <a id="displayText' . $act_item_id . '" href="javascript:toggle('.$act_item_id.');">show</a>
    <div id="toggleText' . $act_item_id . '" style="display: none">' . $responseList . '</div>
    ...
}
于 2013-07-30T17:32:58.327 回答