2017-06-19 8 views
1

次のコードはimagesディレクトリをループし、divで出力します。私はラベルとして画像を使用したいので、選択として使用することができます。

$i = 1; 
foreach (new DirectoryIterator('img/thumbnail') as $fileInfo) { 
    if($fileInfo->isDot()) continue; 
    echo "<label for='grid-item-" . $i++ . "'><div class='grid-item' style='background-image: url(img/thumbnail/" . $fileInfo->getFilename() . ");'></div></label>"; 
    echo "<input type='checkbox' id='grid-item-" . $i++ . "'>"; 
} 

しかし、このループで各$私は++はそうのようにインクリメントされます::

ラベルのために、このために

私は入力ごとにユニークなidを必要とするので、私は$ I ++のものとすることをやりました - > 1

入力ID - > 2

ラベルため- > 3

入力ID - > 4

しかし、私はそうグループにそれらをしたいラベルと入力の試合:ため

ラベル- > 1

入力id - > 1

ラベル - > 2

入力ID - > 2

どのように2つの項目ごとに、私はループにこれをすることができますか?

+4

'' '<入力タイプ= 'チェックボックス' ID = 'グリッドアイテム - "$ iが。。"'>' ''ちょうどそれ –

+0

あなたをインクリメントすることなく、私に$二時間を使います増分が何度も繰り返されています。インラインの代わりにあなたのforeachの終わりにそれをしなさい。 – aynber

答えて

6

$ iを2回ではなく1回だけ増分します。次の例を試してみてください。

$i = 1; 
    foreach (new DirectoryIterator('img/thumbnail') as $fileInfo) { 
     if($fileInfo->isDot()) continue; 
     echo "<label for='grid-item-" . $i . "'><div class='grid-item' style='background-image: url(img/thumbnail/" . $fileInfo->getFilename() . ");'></div></label>"; 
     echo "<input type='checkbox' id='grid-item-" . $i . "'>"; 
     $i++; 
    } 
関連する問題