0

さまざまな ID をロードし、それらを GET 変数のページに送信する php スクリプトがあります。それらはすべてコンマで区切られています。

.../page.php?items=12,13,43,17,

次に、mysql を while ループでロードして、テーブルが表示されるようにします。テーブル項目の ID が同じかどうかを確認し、そのテーブル行にスタイルを追加する必要があります。

だから私がしたことは:

$style = (strstr($_GET['ids'], $segn['itemid'])) ? 'style="background:lightgreen;"' : '' ;
<tr class="gradeX" <?= $style ?> >;

この場合、単一の数値で機能しました。しかし、私がこれIDS: 1, 2, 3 ... 12を持っていて、ページ取得リクエストが"page.php?items=12"ids を取得する'12'場合'1''2'.

使えると思っexplode(',' , $_GET['ids'])たのですが、時間がかかりすぎたようです。

それらのIDを取得するにはどうすればよいですか?(私は正規表現にはまったく関係がありません...)。

4

3 に答える 3

3

ID は文字列ではなく配列として扱う必要があります。したがって、最初に配列を作成します。

$ids = explode(',', $_GET['items']);

次に、現在のアイテムが配列内にあるかどうかを確認します。

$style = in_array($segn['itemid'], $ids) ? 'style="background:lightgreen;"' : '';

つまり、インライン スタイルの代わりに CSS クラスを使用する必要があります。

于 2013-05-18T22:40:42.893 に答える
2

それ以外の:

strstr($_GET['ids'], $segn['itemid'])

あなたはこれを行うことができます:

in_array($segn['itemid'], explode(',',$_GET['ids']));
于 2013-05-18T22:42:27.830 に答える
1

これには正規表現は必要ありません。あなたがしたように、爆発を使用して get 変数を分割します。

$items = explode(",", $_GET['items']);

コードで間違った名前を使用したことに注意してください (get 変数は「ids」ではなく「items」です)。

次に、 in_array を使用して、そこにあるかどうかを確認します。

$style = in_array($segn['itemid'], $items) ? 'style="background:lightgreen;"' : '';
于 2013-05-18T22:45:04.223 に答える