0

PHP を使用して json 配列をインラインでエコーする js/jquery で、これらのデータに従ってテーブルにデータを入力する必要があります。

HTML テーブル

<table>
<thead>
    <tr>
        <th>Time</th>
        <th data-day='2013-03-15'>15-3</th>
        <th data-day='2013-03-16'>16-3</th>
        <th data-day='2013-03-17'>17-3</th>
    </tr>    
</thead>
<tbody>
<tr data-time='09'>
    <td>9am</td>
    <td></td>
    <td></td>
    <td></td>
</tr>
</tbody>
</table>
<script>
var arr=[ 
 {"date":"2013-03-15","id":"4","time_booked":"09:00:00"},
 {"date":"2013-03-15","id":"1","time_booked":"09:10:00"},
 {"date":"2013-03-17","id":"5","time_booked":"09:30:00"}
];
$.each(arr,function(){
    console.log('id:'+this.id+'inside:'+this.date+'|'+this.time_booked);
});
</script>

arr をループして、その日付と time_booked に従って、td 内に ID を書き込みます。

たとえば、最初の行は date-day='2013-03-15' および data-time='09' で td に移動するため、javascript を使用してこれを行うにはどうすればよいですか?

tbody の各 td 内に data-day,data-time を含めるべきだと思いますか? またはそれを行うためのより良い方法はありますか?

現在のアプローチ:

各 tr 内に data-day を含めるので、tbody の html は

<tr data-time='09'>
   <td data-day='2013-03-15'></td>
   <td data-day='2013-03-16'></td>
etc..
</tr>

次にjsを使用します

$.each(arr,function(){
    var rday=this.date;
    var rtime=this.time_booked;
    var sel='tr[data-hr="'+rtime.substr(0,2)+'"]';
    var dom=$(sel).find('td[data-day="'+rday+'"]').first();
    if(dom.length)dom.append(this.id);
});

しかし、私はそれがばかげていると感じています!x、y (テーブル ヘッド、行ヘッド) を使用してテーブルをマップする方法が必要ですか、それともありませんか?

4

1 に答える 1