2017-08-08 12 views
0
<?php 
//Load the database configuration file 
include 'dbConfig.php'; 

$sql  = "SELECT * FROM users ORDER BY level DESC LIMIT 500"; 
$result = $db->query($sql); 
if ($result->num_rows > 0) { 
    $i = 0; 
    while ($row = $result->fetch_assoc()) { 

     echo '<ul class="list-group"> 
    <li class="list-group-item"> 
    <span class="badge">' . $row['level'] . '</span> 
    <img id="' . $i . '" onclick="image();" width="30px" height="30px" src="' . $row['picture'] . '"><strong>&nbsp;' . $row['first_name'] . ' 
    </strong></li> 
    <script> 
function image(this) { 
    console.log($(this).attr("id")); 
} 
    </script> 
    '; 
    $i ++; 

    } 
} 
?> 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> 

これはなぜ機能しないのですか? 問題:Console.logが未定義に戻っています。 なぜ定義されていないメッセージが表示されますか?それを避ける良い方法はありますか?console.log return undefined

+1

'*上の'イベント属性で呼び出される関数の範囲は、 'window'、それゆえ' this'はあなた、何が要素自体されていないではありませんので、問題がありますそれが期待される。ソリューションのためにマークした複写を参照してください。また、 'on *'イベント属性の使用は、時代遅れであり、避けるべきです。代わりに控えめなイベントハンドラを使用してください。 –

+0

以下のスクリプト内でスクリプトを囲んでみてください: jQuery(document).ready(function($){ )}; –

答えて

0

以下の例を確認してください。あなたはjqueryでそれを達成することができます。

$(document).ready(function(){ 
 
$("img").click(function(){ 
 
    alert($(this).attr("id")); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img id="img_123" width="30px" height="30px" src=""><strong>test </strong>
+0

これは私が探していたものです、ありがとう! –

+0

よろしくお願いします:) @HossemHamami – RJParikh