2012-02-07 10 views
0
<? foreach ($waiting_users as $waiting_user): ?> 
<? echo $waiting_user->user_id; ?> 
<? endforeach; ?> 

javascript変数にユーザーIDを定義する必要があります。このようなことをする最善の方法は何ですか?Foreachループのデータを使用してJavascript変数を定義する

<script type="text/javascript"> 
    var user_id = "<? echo $waiting_user->user_id; ?>"; <-------------??? 
    var post_id = "<? echo $post_id; ?>"; 
</script> 

EDIT

foreachの戻りただ一つのユーザID。これは、チャットにサインアップしたユーザーを表示するために使用されます。次に、end.jsにある以下のコードを使用して、ユーザーをテーブルから削除します。 DELETE FROM table WHERE user_id = ? AND post_id = ?;

<a class="end" href="#" title="End">End</a> 

$(document).ready(function() { 

    $("a.end").click(function() { 

      $.post(base_url + "index.php/home/end", { user_id : user_id, post_id :   $(this).attr('id') }, function(data) 
      { 
        alert(data);      
      }, "json"); 

      }); 


}); 
+0

この変数で何を達成しようとしていますか?認証?ユーザーの一覧だけ? –

+0

この問題は、最後に最後のユーザーのみが変数に設定されてしまうという問題があります。下のgion13の答えは、JSONオブジェクトに入れて、javascriptのすべてのユーザーと作業できるので、良いことです。 – thenetimp

答えて

2

私はAJAXを使用して、JavaScriptから呼び出すことができますサービスを経由して目的のデータを取得をお勧めだろうが、それは少し厄介ですが、あなたのバージョンは、あまりにも動作します。
JavaScriptコードを生成するPHPコードを実際に作成したい場合は、オブジェクト全体をクライアント側に渡すことをお勧めします。単にそれをJSONにして、javascriptはそれをネイティブのjavascriptオブジェクトとして解釈します。

<script type="text/javascript"> 
    var users = <?php echo json_encode($waiting_user);?>; 

    // do whatever you want to do with the users 
    // ex : iterate over all users 
    for(var key in users) 
    { 
     var id = users[key].id; 
     // ... 
    } 
</script> 

UPDATE
あなたはクライアント側だけにユーザーのIDのみを渡したい場合は、ループのユーザーの(PHPの)コレクションとは配列(またはオブジェクト)に保管しなければなりません。次に、上記のメカニズムを使用します。

<?php 
    $user_ids = []; 
    foreach ($waiting_users as $waiting_user) 
     $user_ids[] = $waiting_user->user_id; 
?> 
// .... 
<script type="text/javascript"> 
    var user_ids = <?php echo json_encode($user_ids);?>; 
</script> 
+0

JSONオブジェクトを引用符で囲む理由は何ですか?また、引用符を閉じますか? – paislee

+0

これは解決策ではありません。彼はユーザーIDの配列を取得したかったのです。 – iblue

+0

さて、それは素晴らしい答えです! – iblue

0

ユーザーIDを配列に収集し、その配列をJSとして出力します。

<script type="text/javascript"> 
<?php 
$user_ids = array(); 
foreach($waiting_users as $u) { 
    $user_ids[] = $u->user_id; 
} 
?> 
var array_of_user_ids = <?=json_encode($user_ids)?>; 
</script> 
関連する問題