首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用db数据拆分JS

使用db数据拆分JS
EN

Stack Overflow用户
提问于 2013-04-26 19:08:54
回答 1查看 146关注 0票数 0

我想知道如何才能做到以下几点:

我正在通过ajax返回我的数据库数据,使用\作为数据之间的分隔符。

代码语言:javascript
复制
success: function (data, responseText, textStatus) {
    var dataBack = data.split("|");

    $('#name').html(dataBack[0]);
    $('#company').html(dataBack[1]);
    $('#address').html(dataBack[2]);
    $('#phone').html(dataBack[3]);
    $('#email').html(dataBack[4]);
    $('#city').html(dataBack[5]);
    $('#state').html(dataBack[6]);
    $('#zip').html(dataBack[7]);
    $('#accNum').html(dataBack[8]);

    howManyCases = dataBack[9];
    var htmlCode = '';
    var caseStats = '';
    var myDate = new Date(dataBack[10]);                
    var month = new Array();

    month[0]="01";month[1]="02";month[2]="03";month[3]="04";month[4]="05";month[5]="06";
    month[6]="07";month[7]="08";month[8]="09";month[9]="10";month[10]="11";month[11]="12";

    var theFinalDate = myDate.getFullYear() + '-' + month[myDate.getMonth()] + '-' + myDate.getDate();

    if (dataBack[14] == 0) {
        caseStats = 'PENDING';
    } else {
        caseStats = 'ACCEPTED';
    }

    htmlCode = '<td width="124" style="padding-top: 8px; padding-left: 10px;" id="caseDate">' + theFinalDate + '</td>' + 
                '<td width="160" style="padding-top: 8px;" id="caseNum">' + dataBack[11] + '</td>' + 
                '<td width="172" style="padding-top: 8px;" id="caseLab">' + dataBack[12] + '</td>' + 
                '<td width="87" style="padding-top: 8px; color: #d8a401;" id="caseStatus">' + caseStats + '</td>' + 
                '<td width="59" style="padding-top: 8px;" id="caseQue">' + dataBack[13] + '</td>';

    $('#cases').html(htmlCode);

dataBack9存储返回的记录数(0-4)“限制5”。

dataBack10-14是填充每个表行所需的数据。

同样,如果返回的1记录超过,则该数字将继续使用等。

那么,在某种类型的循环中这样做最好是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2013-04-26 21:17:27

这里是一些可能性的例子,它使用循环使代码更加可重用,当然,您需要将这些想法塑造成您实际上想要的东西,因为我无法从您的示例中准确地猜测,因为您似乎在混合显示的数据。

CSS

代码语言:javascript
复制
.caseDate {
    width: 124px;
    padding-top: 8px;
    padding-left: 10px;
}
.caseNum {
    width: 160px;
    padding-top: 8px;
}
.caseLab {
    width: 172px;
    padding-top: 8px;
}
.caseStatus {
    width: 87px;
    padding-top: 8px;
    color: #d8a401;
}
.caseQue {
    width: 59px;
    padding-top: 8px;
}

JavaScript

代码语言:javascript
复制
var howManyCases,
    table = document.createElement("table"),
    tbody = document.createElement("tbody"),
    data = "John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0|John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0|John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0|John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0|John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0|John Smith|Some Company|The Street|000 - 000 000|john@some.company|Lost|Sunny|123-456|0123456789|3|" + Date.now() + "|1001010010|LAB1234|Que1234|0",
    month = [],
    i;

for (i = 1; i < 13; i += 1) {
    if (i < 10) {
        month.push("0" + i);
    } else {
        month.push(i.toString());
    }
}

tbody.id = "cases";
table.appendChild(tbody);
document.body.appendChild(table);

function success(data) {
    var dataBack = data.split("|"),
        length = dataBack.length,
        fields = ['name', 'company', 'address', 'phone', 'email', 'city', 'state', 'zip', 'accNum'],
        caseStats = '',
        classes,
        myDate,
        theFinalDate,
        i,
        tr,
        tempTd,
        records = [];

    for (i = 0; i < length; i += 15) {
        records.push(dataBack.slice(0, 15));
    }

    records.forEach(function (record, recordNum) {
        fields.forEach(function (field, index) {
            var newDiv = document.createElement("div");

            newDiv.id = field + recordNum;
            newDiv.textContent = record[index];
            document.body.appendChild(newDiv);
        });

        howManyCases = parseInt(record[9], 10);
        myDate = new Date(parseInt(record[10], 10));
        theFinalDate = myDate.getFullYear() + '-' + month[myDate.getMonth()] + '-' + myDate.getDate();

        if (parseInt(record[14], 10) === 0) {
            caseStats = 'PENDING';
        } else {
            caseStats = 'ACCEPTED';
        }

        classes = {
            "caseDate": theFinalDate,
            "caseNum": record[11],
            "caseLab": record[12],
            "caseStatus": caseStats,
            "caseQue": record[13]
        };

        tr = document.createElement("tr");
        Object.keys(classes).forEach(function (className) {
            tempTd = document.createElement("td");
            tempTd.className = className;
            tempTd.textContent = classes[className];
            tr.appendChild(tempTd);
        });

        tbody.appendChild(tr);
    });
}

success(data);

小提琴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16243582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档