使用字段关联将数据从文件导入数据库?

时间:2014-09-02 12:21:25

标签: jquery file-io

我对此事有些疑问:

我在php中使用这个脚本从csv文件导入数据到mysql。

因为每个文件都有不同的标题我正在使用这个“接口”,我将在数据库的字段和文件的字段之间建立关联。

实际上我在最重要的部分被阻止了:如何最终确定关联? 实际上我得到了这个输出:

<table>
    <tr>DATABASE</tr>
        <td id="db_1">COL_NAME_A</td>
        <td id="db_2">COL_NAME_B</td>
        <td id="db_3">COL_NAME_C</td>        
    </tr>

    <tr>FILE</tr>
        <td id="file_1">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
        </td>
        <td id="file_2">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
        </td>
        <td id="file_3">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
        </td>
    </tr>
</table>

现在,通过jquery,我如何制作一个json,我可以建立一个关联:

DB_1 => FILE_1:SELECTED_VALUE

DB_2 => FILE_2:SELECTED_VALUE

DB_3 => FILE_3:SELECTED_VALUE

1 个答案:

答案 0 :(得分:1)

你的html在很多方面都被打破了,首先tr元素不能包含任何文本,其次select元素没有关闭。纠正那些。然后,如果我理解你,你可以利用数据属性来生成你需要的对象。像这样:

HTML:

<table>
    <tr>
        <td id="db_1">COL_NAME_A</td>
        <td id="db_2">COL_NAME_B</td>
        <td id="db_3">COL_NAME_C</td>
    </tr>
    <tr>
        <td id="file_1" data-db="db_1" data-file="file_1" class="doStuff">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
            </select>
        </td>
        <td id="file_2" data-db="db_2" data-file="file_2" class="doStuff">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
            </select>
        </td>
        <td id="file_3" data-db="db_3" data-file="file_3" class="doStuff">
            <select name="fileFieldsContainer">
                <option value="FILE_FIELD_A">FILE_FIELD_A</option>
                <option value="FILE_FIELD_B">FILE_FIELD_B</option>
                <option value="FILE_FIELD_C">FILE_FIELD_C</option>
            </select>
        </td>
    </tr>
</table>

JS:

$(function () {
    var t = [];
    $(".doStuff").each(function () {
        var o = {};
        var innerO = {};
        innerO[$(this).data("file")] = $(this).find("select").val();
        o[$(this).data("db")] = innerO;
        t.push(o);
    });

    console.log(t);
});