自动完成庞大的csv文件

时间:2018-10-02 01:14:01

标签: wordpress csv autocomplete

我是编码的新手,所以我要完成的工作非常困难。我看到的答案与我想要的内容密切相关,但与我的要求无关。 首先,我有一个巨大的.csv文件,其中包含超过500,000条记录 我想使用以下两种方法之一使用自动完成功能搜索.csv文件:地址或表带号 我的第一个问题,我无法将我的.csv文件加载到wordpress中,我不断收到错误消息。但是这是到目前为止我想出的代码:

    <form id="addresslookup" action="" method="post">
Street Address: <input id="address" class="input" name="address" type="text" 
/>
City, State, Zip: <input id="zip" class="input" name="zip" type="text" />
Strap: <input id="Strap" class="input" name="Strap" type="text" />
<input id="user-submit-button" class="btn" type="submit" value="Submit" />
</form>
<?php

/**
* @param string $filename
* @param string $delimiter
*
* @return array|bool
*/
function csv_to_array($filename = '', $delimiter = ',') {
if (!file_exists($filename) || !is_readable($filename))
    return false;

$header = null;
$data = array();
if (($handle = fopen($filename, 'r')) !== false) {
    while (($row = fgetcsv($handle, 1000, $delimiter)) !== false) {
        if (!$header)
            $header = $row;
        else {
            for ($i = 0; $i < sizeof($header); $i++) {
                $title = $header[$i];
                if (!array_key_exists($title, $data)) $data[$title] = '';
                if (!is_array($data[$title])) $data[$title] = array();
                array_push($data[$title], floatval($row[$i]));
            }
        }
    }
    fclose($handle);
}
return $data;
}

/**
* Example
*/
$data = csv_to_array('leecountyrecords.csv', ',');
print_r($data[Strap]);
echo json_encode($data);
?>

<script>
var data = <?php echo json_encode($data) ?>;
var autocomp = new Array();
var hash = new Array();
for (var i=0; i < data.length; i++)
{
autocomp[i] = data[i].address + ' ' + data[i].Strap;
hash[autocomp[i]] = data[i];
}

$(function() {
$( "#address" ).autocomplete({
    source:autocomp,
    select: function( event, ui ) {
        var d = hash[ui.item.label];
        $( "#address" ).val( d.address + " / " + d.Strap );
        return false;
    }
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
    var d = hash[item.label];
     return $( "<li>" )
    .data( "item.autocomplete", d )
    .append( "<a><strong>" + d.address + "</strong> / " + d.Strap + "</a>" )
    .appendTo( ul );
};
});

请帮助!另外,选择自动完成功能后,我需要从.csv行所在的数据中提取数据并将其显示在我的页面上

0 个答案:

没有答案