首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php循环创建div时动态创建div

在php循环创建div时动态创建div
EN

Stack Overflow用户
提问于 2011-08-09 21:09:01
回答 2查看 3.5K关注 0票数 0

我是jquery的新手,遇到一个问题,需要帮助。

我有一个sql查询来检索in并将它们放入数组中。我有一个循环,它用php为数组中每个id创建一个div。工作正常。

另一方面,我有一个javascript函数对相同的数组执行相同的操作,并在使用上面的函数创建的div中创建div,所有这些都是在jquery中完成的。

第一个显示id为的用户的图片。javascript one使用id显示用户的名称。

问题是jquery函数只在php循环中创建的第一个div中使用所有名称创建div。

我希望两者同时创建。我试过我所知道的一切,但就是找不到。

请帮帮忙。

代码如下:

$receivers是包含ids的数组。$totalreceivers是ids的计数。

代码语言:javascript
运行
复制
function showfbnames() {

var receivers = <? echo $receivers; ?>;

var count = <? echo $totalreceivers; ?>;

for (var i = 0; i < count; i++) {

var temparray = ["<?php echo join("\", \"", $receivers); ?>"];

FB.api(
        {
            method: 'fql.query',
            query: 'SELECT name FROM user WHERE uid='+temparray[i] 
        },
        function(resp) {
            $.each(resp, function(k,v) {

            $("#divfather").append("<div class='tit' id ='fbname'>"+(v.name)+"</div>");
            //$("#fbname").html(v.name);

             })
        }
    );
    }
 }

php循环创建div:

代码语言:javascript
运行
复制
<?for ($i = 0; $i < $totalreceivers; $i++) {?>
                <script>showfbnames()</script>
            <tr><td>
<div style="width:100%; height:150px;overflow:auto;border-top:1px solid #c89cc1;border-bottom:1px solid #c89cc1;" id="divfather">
<? echo "<img src='https://graph.facebook.com/$receivers[$i]/picture' width='40' style='float:left'/>";?>


                    </div>
                </td>
            </tr>
            <? }    ?>
EN

回答 2

Stack Overflow用户

发布于 2011-08-09 23:28:36

您的循环创建了多个id为"divfather“的div。

这不会产生你想要的结果。你需要让每个div都有不同的id。

id="divfather<?echo $i;?>"

另外,将id传递给"showfbnames“函数:

<script>showfbnames(<?echo $i;?>)</script>

这样您就可以在jquery代码中使用它:

function showfbnames(passedi) {

然后是$("#divfather"+passedi).append(

(注意:为了安全起见,我建议您将<script>移动到div之后。你不需要这样做,但这太冒险了。)

票数 1
EN

Stack Overflow用户

发布于 2011-08-10 04:03:00

我收回我之前的回答;请选择这个作为可接受的解决方案。

我相信这就是你想要实现的:

代码语言:javascript
运行
复制
<? for ($i = 0; $i < $totalreceivers; $i++) { ?>
    <tr><td>
        <div style="width:100%; height:150px;overflow:auto;border-top:1px solid #c89cc1;border-bottom:1px solid #c89cc1;" id="divfather<? echo $i; ?>">
    <? echo "<img src='https://graph.facebook.com/$receivers[$i]/picture' width='40' style='float:left'/>"; ?>
        </div>
    </td></tr>
<? } ?>

<script type="text/javascript">

var count = <? echo $totalreceivers; ?>;

var temparray = ["<?php echo join("\", \"", $receivers); ?>"];

for (var i = 0; i < count; i++) {

    FB.api(
        {
            method: 'fql.query',
            query: 'SELECT name FROM user WHERE uid='+temparray[i] 
        },
        function(resp) {
            $.each(resp, function(k,v) {

            $("#divfather"+i).append("<div class='tit' id ='fbname"+i+"'>"+(v.name)+"</div>");
            //$("#fbname").html(v.name);

             })
        }
    );
}
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6996648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档