2011-08-09 16 views
0

jqueryで新しい機能が追加され、問題がスタック化して助けが必要です。divを動的に作成しながらdivを作成する

私はIDを取得し、配列に配置するSQLクエリを持っています。私はその配列のすべてのPHPの各IDのdivを作成するループを持っています。正常に動作します。

一方、私は、同じ配列で同じことをし、上記の関数で作成されたdiv内のdivをすべてjqueryで作成するjavascript関数を持っています。

最初のIDのユーザーの画像を表示します。 javascriptにはidを持つユーザーの名前が表示されます。

問題はjquery関数createmeです。divはPHPループで作成された最初のdiv内のすべての名前を持ちます。

私は両方が同時に作成されることを望みます。私は知っているし、getitをcouldntすべてを試みた。

助けてください。

ここにコードはあります:

$ receiverはIDを含む配列です。 $ totalreceiversはIDの数です。

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); 

      }) 
     } 
    ); 
    } 
} 

divを作成するPHPのループ:

<?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> 
      <? } ?> 
+0

任意のヘルプ?????? –

答えて

1

はあなたのループは "divfather" のIDで複数のdivを作成します。

あなたの望む結果は得られません。異なるIDを持つ各divを持つ必要があります。

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

また、 "showfbnames" 機能にIDを渡す:

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

をので、あなたのjqueryのコードでそれを使用することができます:

function showfbnames(passedi) {

次に$("#divfather"+passedi).append(

(注:安全のために、<script>をdivの後に表示することをお勧めします。あなたはそうする必要はありませんが、それはあまりにも危険です。)

+0

お返事ありがとうございます。私はあなたが書いたコードを正確に試しました。しかし、それは動作していない!今はそれが機能を持つ名前を示した前に何も表示されません!!!!!!!! –

0

私は以前の答えを取り消します。 Accepted solutionとしてこの1つを選択してください。

私は、これはあなたが達成しようとしているものであると信じて:

<? 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> 
関連する問題