如何根据用户输入的信息以HTML格式显示CSV中的数据?

时间:2013-01-29 21:54:16

标签: php html csv

我继承了一个网站,允许用户输入数量,然后扫描条形码,然后将项目编号键入字段并选中下一个字段。这些数量/项目编号行中有十个可以填写。点击提交后,数据将通过电子邮件发送到一个地址。

我有一个包含两列的CSV文件,一列用于项目编号,另一列用于描述。我可以进行设置,以便页面在填充项目编号字段时会注意到,并显示描述的文本吗?

我可以使用将CSV保存为单独文件的解决方案,或者那些需要我将CSV数据复制到HTML文件中的解决方案(如果有必要)。或任何其他开箱即用的解决方案。

此外,HTML在PHP内部,我不确定重要的是多少。像这样:

<?php
if(isset($_POST["submit"])) {
...
} else { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<body>
...
</body>
</html>
<?php } ?>

非常感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

我认为您必须使用该行的模板并使用Javascript动态创建必要的行。

您可以将事件添加到第一个字段。更改后,您可以向服务器发送请求(使用Ajax),并使用返回的数据填充第二个字段。

您可以看到其他问题,例如thisthis,其中解释了此方法的一部分。

答案 1 :(得分:0)

除了明显的Put the CSV in a DB and fetch it from there建议外,您还可以阅读csv文件并将其存储在javascript对象中。像:

var myObject = {
   item_number_1: description_1,
   item_number_2: description_2,
   ....
   ....
   ....
   item_number_n: description_n
}

然后,您可以通过事件处理程序检查用户输入的项目编号是否在此对象中,如果是,则显示说明。希望有所帮助。

从csv

创建对象的方法
<script type="text/javascript">
var myObject = {};
<?php
$fp=fopen('PATH_TO_YOUR_CSV_FILE','r');
$str = '';

while(($data=fgetcsv($fp,'',','))!==false) {
   $item = htmlentities(trim($data[0]),ENT_COMPAT,'UTF-8',false);
   $desc = htmlentities(trim($data[1]),ENT_COMPAT,'UTF-8',false);

   $str .= 'myObject["'.$item.'"]="'.$desc.'",';
}
fclose($fp);
echo trim($str,',');
?>
</script>