我尝试使用onclick功能将CSV数据存储到数据库。不幸的是,我在javascript函数中使用PHP代码,这是不够有效的。因此,我希望通过使用javascript代替php将CSV数据存储到数据库中,我可以获得任何建议或解决方案来提高项目的效率。
这是带有PHP代码的JavaScript:
<script>
function storeQueEmail(){
<?php
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
$record['contact_first'] = $data[0];
$record['contact_last'] = $data[1];
$record['contact_email'] = $data[2];
$record['subject'] = $_REQUEST['subject'];
$record['message'] = $_REQUEST['message'];
$record['status'] = 0;
$oAdminEmail->insertQueEmail($record);
}
} while ($data = fgetcsv($handle,1000,",","'"));
?>
}
</script>
这是HTML代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1" >
Subject : <br/>
<input type="text" name="subject" id="subject" required/> <br/>
Choose your upload type: <br />
<input name="csv" type="file" id="csv" accept=".csv" required/> <br/>
Content : <br/>
<textarea name="message" cols="50" rows="10" required></textarea><br/>
<input type="submit" name="submit" value="Submit" onclick="storeQueEmail()"/>
</form>
</body>
</html>
答案 0 :(得分:0)
请记住,虽然PHP代码是在服务器上解释的,但客户端(即在浏览器中)会解释标准Javascript代码。如上面的评论所述,可以使用AJAX或POST / GET - 请求将数据发送到您的服务器,然后将其写入您的数据库或文件等。
使用Javascript直接执行此操作的另一种方法是Node.js - 能够像PHP一样写入数据库的服务器端Javascript。
使用上面提到的HTML代码执行此操作的最简单方法是填写
action - attribute
中的
form tag
例如:
<form action="proccessData.php" ...>
...
</form>
请勿忘记删除表单提交输入字段中的onclick - 属性。 如果您知道按下提交按钮,则整个表单及其内容将发送至http://www.xyz.de/proccessData.php。在该文件中,您可以使用表单数据:在您的情况下,两个文本字段和一个文件上载字段。您可能知道可以通过以下方式发送文本输入字段的内容:
$_POST['<name of field>']
要获取上传的文件并获取它,您可以使用PHP的全局
$_FILE[] - Array
请参阅php.net上的PHP手册或其他一些在线文档。网上有很多东西可以找到。 我只是给你一个有用的链接到php.net如何以正确和安全的方式处理文件上传:http://us2.php.net/manual/en/features.file-upload.php
通过PHP全局$ _FILE []后读取上传的文件 - 数组只需通过proccessData.php中的fgetcsv处理该文件,然后将该行写入您的数据库行。
希望有所帮助!这真的不是那么难:)