2017-07-04 6 views
3

私は数値をチェックして結果をその数値に出力するファーループを持っています。forループ内の各要素に異なるIDを与えます

例えば、下の画像では、「カット画像」が倍数で表示されています。遠いループにタグがあるので、回数に応じて画像が出力されます。その数字はデータベースから来ています。

MY質問。 明らかに、最初の行のすべての画像は同じIDを持ちます。現在、ユーザーは行の最初のイメージのみをクリックできます。可能であれば、各要素に異なるIDを与えたいと思います。 JQueryを使用してクリックイベントを追加するよりも、だから、1行目の4番目の画像をクリックすると警告メッセージが表示され、5番目の画像をクリックすると別の警告メッセージが表示されます。

farループ内の各要素に異なるIDを割り当てることで、最初の画像をクリック可能にするだけでなく、すべての要素をクリック可能にします。

enter image description here

マイループ

<table class="table table-bordered"> 
    <thead> 
    <tbody> 
     <tr> 
     <?php 
     for($x=0; $x < $row['noof10s_vnr']; $x++){ 
      ?> 

      <td><img alt="" class="yellow-process center-block " id ="cut-full-roll-<?php echo $row['id_vnr']; ?>" name="<?php echo $row['id_vnr']; ?>" src="../../css/icons/vinyl-rolls/cut.png"></td> 
     <?php 
     } 
     ?> 

     </tr> 
    </tbody> 
    </table> 

私のjqueryのセレクタ 私は画像をクリックするクリックイベントを追加するには、このような何かを行うことができるよりも、私は、各要素に異なるIDを与えることができます。

jQuery("#vinyl-roll-down-<?php echo $row['id_vnr']; ?>").click(function() { 

しかし、遠いループの各要素に異なる固有の割り当てをする必要があります。

ありがとうございます。

+0

がクラスにクリックハンドラを入れ、その後、 '詳細を取得するには、' $(この)にアクセスしています画像のクリック –

+0

あなたのループが間違っているようです。いくつかのサンプルデータで本当に役立つでしょうか。 'noof10s_vnr'と同様、行は何か。あなたのループは同じ行を繰り返し出力します。あなたは既にIDを持っていて、それは$ xです。毎回それを増やすので、それを使うだけですか? – Alx101

+0

それは大丈夫でしょう。しかし、現時点では、各行の最初のイメージはクリック可能です。 1つの行のすべての画像は同じIDを持つので、最初にクリックできるのは1つだけです。私はクリックイベントを追加できるよりも、行の各要素に異なる一意のIDを与えたいと思っています。 –

答えて

3

私はPHPであなたのループはそう大丈夫だと思います。 問題はあなたのjqueryにあります。使用属性 セレクタattr("id")を使用して正しいIDを取得してみてください。

jQuery(".yellow-process").click(function() { 
    var selected = jQuery(this).attr("id"); 
    alert(selected); // to show the selected image id 
    // use the variable selected to do something with it. 
} 

このjqueryコードを試した後、あなたのために使用することができます。

0

あなたは、HTMLでこの

を試すことができます。

<table class="table table-bordered"> 
    <thead> 
    <tbody> 
    <tr> 
     <?php 
     for($x=0; $x < $row['noof10s_vnr']; $x++){ 
     ?> 
     <td><img id="image{{$x}}" alt="" class="yellow-process center-block " onclick="imageClick(<?php echo $row['id_vnr']; ?>)" name="<?php echo $row['id_vnr']; ?>" src="../../css/icons/vinyl-rolls/cut.png"></td> 
     <?php 
     } 
     ?> 

    </tr> 
    </tbody> 
</table> 

function imageClick(id) { 
    alert(id); 
    var imageId = jQuery(this).attr("id"); 
    alert(imageId); 
// your code 
} 

jqueryので、それはあなたを助ける私は太もも。

+0

Binhudatta Sahooありがとうございました。私はこの方法が好きです。各要素を区別するためのソート方法はありますか?現時点では、1行目の画像をクリックすると同じIDが表示されます。今私はそれぞれのイメージを別々に扱いたいと思います。 –

+0

はい@ムハンマドイクラムあなたはこれを行うことができます、ちょうど一度編集された答えを試してください。 –

-2
$(".yellow-process").bind("click",function() { 
    var selected = $(this).attr("id"); 
    alert(selected); // to show the selected image id 
    // use the variable selected to do something with it. 
}); 

PHPコードは、正しい方法で書かれており、上記だけでjqueryのために期待どおりに動作し作業コード

関連する問題