php中这个jquery代码的等价物是什么?

时间:2014-11-28 06:18:17

标签: javascript php jquery arrays foreach

Jquery Code就是这个..

$.each(data, function(index, elem) {

    if (elem.stdid != stdid) {

        var cols = new Array(days);
        $.each(data, function(ind, el) {

            if (el.stdid == elem.stdid) {
                cols[el.day] = el.status.substring(0, 1);
                console.log(cols[el.day]);
            }
        });


        var row = "<tr><td class='txtcenter level4row'>"+ (counter++) +"</td><td class='txtcenter level4row'>"+ elem.student_name +"</td>";
        for ( i = 1; i<=cols.length; i++) {
            console.log(typeof(cols[i]));

            if (i%2 == 0) {
                row += "<td class='txtcenter' style='background: #e6f3fd;'>"+ ((typeof(cols[i]) == "undefined") ? '-' : cols[i]) +"</td>";
            } else {
                row += "<td class='txtcenter' style='background: #fff;'>"+ ((typeof(cols[i]) == "undefined") ? '-' : cols[i]) +"</td>";
            }
        }
        row += "</tr>";
        $(row).appendTo('#atnd-table tbody');

        stdid = elem.stdid;
    }
});

我转换的代码是这样的:

<?php    foreach ($vrdetail as $row):?>
   <?php if ($row['stdid'] !== $stdid): ?>
                                                                                             <?php $cols =  array($days); ?>    
        <?php  foreach ($vrdetail as $rowTwo):?>
            <?php if ($rowTwo['stdid'] === $row['stdid']): ?>
                <?php  $cols[$rowTwo['day']] = substr($rowTwo['status'],0,1); echo $cols[$rowTwo['day']];?>
            <?php endif; ?>
        <?php endforeach; ?>

    <?php $tr =  "<tr>".
                 "<td colspan='3' style=''>". $counter++."</td><td>" . $row['student_name'] ."</td>"; ?>
    <?php $length = count($cols);
            for ($i=1; $i <= $length; $i++) { 
                    if ($i%2 === 0 ) {
                        $tr +=  "<td>".  ((gettype($cols[$i]) == 'NULL') ? '-' : $cols[$i]) ."</td>";                                               
                    }else{
                        $tr += "<td >".((gettype($cols[$i]) == 'NULL') ? '-' 
                                                        : $cols[$i]) ."</td>";
                    }
                 }  
            $tr +=  "</tr>";
            $stdid = $row['stdid'];                  
            ?>
                                                                                                    <?php endif; ?>
    <?php endforeach ?>

这个Php代码在这些方面给我一个错误:

 $tr +=  "<td>".  ((gettype($cols[$i]) == 'NULL') ? '-' : $cols[$i])."</td>";   

 $tr += "<td >".((gettype($cols[$i]) == 'NULL') ? '-' : $cols[$i]) ."</td>";

  

遇到了PHP错误   严重性:通知消息:未定义的偏移量:1文件名:   reportPrints / monthlyAttendanceReport_pdf.php行号:151   严重性:通知消息:未定义的偏移量:2

和第二行相同,但偏移仅为更改。

2 个答案:

答案 0 :(得分:0)

尝试使用

 $tr .= "<td >".((gettype($cols[$i]) == 'NULL') ? '-' : $cols[$i]) ."</td>";

而不是

 $tr += "<td >".((gettype($cols[$i]) == 'NULL') ? '-' : $cols[$i]) ."</td>";

答案 1 :(得分:0)

在第3行,你有:

<?php $cols =  array($days); ?>

我假设$days是一个数组本身。上面的语句将创建一个数组$cols,它在索引0处只有一个元素(即一个数组)。

在导致错误的行中,您尝试访问索引1和2处不存在的$cols数组元素。