2017-09-04 1 views
-4

루프 동안 내 PHP 루프 내에서 자바 스크립트를 실행하려고하지만 그것의 작동하지 않는 내가 원하는 것은 내가 id 체크와 함께 버튼을 클릭하면, 그 버튼을 숨길 것입니다 및 ID 변화의 버튼을 보여하지만 를 작동하지 않는이 내 코드내 jquery 루프 내 PHP에서 작동하지 않습니다

<?php 
$s = mysqli_query($conn, "SELECT * FROM test"); 
while($d = mysqli_fetch_array($s)) 
{ 
    $id = $d['id']; 
    echo '  
     <button id="check'.$id.'" onclick="respond('.$n.');">check'.$id.'</button><br> 
     <button id="change'.$id.'" style="display:none;">change'.$id.'</button> 
    '; 
} 
?> 
<script> 
    function respond(username) 
    { 
     $("#check'"+<?php echo $id; ?>"'").hide(); 
     $("#change'"+<?php echo $id; ?>"'").show(); 
     $.post("ana.php", 
     { 
      username:username 
     }); 
    } 
</script> 
+0

어떤 방식으로 작동하지 않습니까? 특정 오류 메시지가 나타 납니까? 아무 일도 일어나지 않습니까? 언데드들의 울부 짖음을 소환합니까? –

+0

버튼 ID는이 check1과 같지만 jquery에서는 "# check'1"과 같은 ID를 사용합니다. – Max

+0

아니요 숨기지 않고 버튼을 표시하지 않습니다 –

답변

1

사용 jqueryclick 기능이며, 선택된 행을 식별하기 위해 자바 스크립트의 this를 사용합니다. 1 개의 정적 값을 변경하여 동일한 기능을 수행하는 여러 함수가 없어야합니다. 여기에 내가 당신의 대부분의 문제를 해결할 것이라고 생각 거친 구현의 : n이 요소의 값이며, 그것을 나는 당신의 id 무엇입니까 같은 방법으로 얻을 어떤

<?php 
$s = mysqli_query($conn, "SELECT * FROM test"); 
while($d = mysqli_fetch_array($s)) 
{ 
    $id = $d['id']; 
    echo '<button class="respond" id="check'.$id.'">check'.$id.'</button><br> 
     <button id="change'.$id.'" style="display:none;">change'.$id.'</button>'; 
} 
?> 
<script> 
    $('.respond').click(function() { 
     var id = $(this).attr('id').replace('check', ''); 
     $("#check" + id).hide(); 
     $("#change" + id).show(); 
     $.post("ana.php", {username:username}); 
    }); 
</script> 

스토어.

+1

JS 자료에서 잘 작동하는지 몰랐습니다. 나는 아무 JS 남자도 아니지만 나에게 좋은 내기 같아. –

+0

@ Fred-ii- 최소, 자주는 아닙니다. – chris85

+0

글쎄, 당신은 100 타율 인 것 같습니다 ;-) –

관련 문제