###はじめに
あるデータがあったときに、表示自体はされていますが、Aに値がある場合はBの欄の色を変えて入力不可にしたり、その逆もありということをしたいと思っています。
その要素の特定などが、よくわからず質問いたします。
###デモデータ
PHP
1$demo['demo'][] = [ 2 ['A' => 1, 'B' => 111,], 3 ['A' => 2, 'B' => 222,], 4 ['A' => 3, 'B' => 000,], 5 ]; 6$demo['demo'][] = [ 7 ['A' => 1, 'B' => 000,], 8 ['A' => 2, 'B' => 222,], 9 ['A' => 3, 'B' => 111,], 10 ];
上記のようなデータがあったとします。
これを表示させます。
###表示
HTML
1<table> 2 <thead> 3 <tr> 4 <th>A</th> 5 <th>B</th> 6 <th>C</th> 7 </tr> 8 </thead> 9 <tbody> 10 <?php for($i = 0; $i < count($demo); $i++) : ?> 11 <tr> 12 <?php for($j = 0; $j < 3; $j++) : ?> 13 <td> 14 <input type="hidden" name="demo[$i][$j][num]" value="<?$demo[$i][$j]["A"]?>"> 15 <input type="text" name="demo[$i][$j][body]" value="<?=$demo[$i][$j]["B"]?>"> 16 </td> 17 <?php endfor; ?> 18 </tr> 19 <?php endfor; ?> 20 </tbody> 21</table>
表示させた後に値を変更して送信することを想定して、フォーム仕様にしています。
横に並べるように表示させて、今回のでもの場合は2行のテーブルが表示されると思います。
###やりたいことの説明
今回のデモデータにおいて、A===1とA===3はどちらかにしか基本的には値が入らないという条件が一つあります。
今回の000はあくまでもdefault値と思っていただければと思いますが、、、
今回のテーブルでは横に3列のテーブルができます。
A===1 | A===2 | A===3 |
---|---|---|
111 | 222 | 000 |
000 | 222 | 111 |
この時に上記の場合000のセルのフォーム部品を編集できないようにdisabledになるようなスクリプトを考えています。
もちろん、下記のような表の場合
A===1 | A===2 | A===3 |
---|---|---|
000 | 222 | 000 |
000 | 222 | 111 |
両方が値がない場合はどちらも入力できるような状況とします。
※両方に値をいれてから送信したらどうするの?ということは今回は置いておいてください。
回答2件
あなたの回答
tips
プレビュー