2012-02-07 4 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> 

편집

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 객체에 넣으면 좋을 것입니다. – thenetimp

답변

2

난 당신이 아약스를 사용하여 자바 스크립트에서 호출 할 수있는 서비스를 통해 원하는 데이터를 가져 오는 것이 좋습니다,하지만 조금 지저분하지만 버전 역시 작동합니다.
자바 스크립트 코드를 생성하는 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> 
관련 문제