定制运输选择选项

时间:2019-01-27 16:08:40

标签: php loops opencart shipping

我想向我的自定义吸吮方法中添加一个选择选项,我有一个csv,其中我已从其他网址中抓取了所有数据,并希望通过while和foreach循环来支付选择选项中的所有数据,但无法获取全部这些行,在选择选项中仅显示最后一个,对我的代码有帮助吗?

enter image description here

$_['text_title']       = 'LP express 24/7';

$csv = file_get_contents('https://www.lpexpress.lt/out/fck/fck_file/Terminal%C5%B3_ID_2019_01_02.csv');

file_put_contents('data.csv', str_replace(';', ' ',$csv));

$handle = fopen('data.csv', "r");

fgetcsv($handle);
fgetcsv($handle);

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    foreach($data as $value=>$title) {  
        //view the data 
        $select = '<option value = "' . $value. '">' . $title. '</option>';  
    } 
}

$_['text_description'] = '<select>' . $select . '</select>';

fclose($handle);

3 个答案:

答案 0 :(得分:1)

您没有正确使用fgetcsv(),并且前面的处理很奇怪。

测试并修改此脚本:

$csv = 'https://www.lpexpress.lt/out/fck/fck_file/Terminal%C5%B3_ID_2019_01_02.csv';
$fp = fopen($csv, 'r');
fgetcsv($fp); // Skip empty line
fgetcsv($fp); // Skip header
$html = "<select>\r\n";
while ( ($data = fgetcsv($fp, 0, ';', '"')) !== FALSE ) {
    $html .= "<option value='$data[1]'>$data[2] -- $data[3] $data[4] $data[0]</option>\r\n";
}
fclose($fp);
$html .= "</select>\r\n";
echo $html;

它给出了:

<select>
<option value='0101'>Akropolis -- Ozo g. 25 07150 Vilnius</option>
<option value='0102'>Maxima XXX -- Ukmergės g. 282 06115 Vilnius</option>
<option value='0103'>Maxima XX -- Liepkalnio g. 112 02121 Vilnius</option>
<option value='0104'>Banginis -- P. Lukšio g. 34 08235 Vilnius</option>
<option value='0106'>Centrinis paštas -- Gedimino pr. 7 01103 Vilnius</option>
<option value='0107'>Maxima XX -- J. Tiškevičiaus g. 22 02231 Vilnius</option>
<option value='0108'>Panorama -- Saltoniškių g. 9 08105 Vilnius</option>
<option value='0110'>Circle K -- Laisvės pr. 43C 05112 Vilnius</option>
<option value='0111'>IKI Minskas -- Žirmūnų g. 2 09214 Vilnius</option>
...

答案 1 :(得分:0)

您需要将文件内容附加到$ select变量中,而不是每次迭代都分配新条目

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    foreach($data as $value=>$title) {  
        //view the data 
//here => 
        $select .= '<option value = "' . $value. '">' . $title. '</option>';  
    } 
}

答案 2 :(得分:0)