使用onclick函数将CSV文件存储到数据库

时间:2014-03-24 07:56:30

标签: javascript php jquery html csv

<i>我想问一下从html表单上传后如何将CSV文件存储到数据库。 我曾尝试使用onclick将CSV文件存储到数据库并且工作正常。但同时我需要验证表单中的其他字段,但我不能使用onclick函数。在我的项目中,我将javascript与我的php代码集成,我知道这是无法完成的。任何人都可以帮我解决问题吗?我需要将csv文件存储到数据库中并验证其他字段。

`

<?php  
require_once "lib/base.inc.php";
?> 
<script>
function checkmail(){
var subject = document.getElementById('subject').value;
var message = document.getElementById('message').value;
var csv = document.getElementById('csv').value;

if(empty(subject)){
alert("Subject is required.");
}
else if(empty(message)){
alert("Message is required.");
}
else if(empty(csv)){
alert("CSV file is required.");
}

else{
<?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['status'] = 0;

            $oAdminEmail->insertQueEmail($record);
            } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

    ?>; 
}
}
</script>
<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"/> <br/>
  Choose your file: <br /> 
  <input name="csv" type="file"id="csv"/> <br/>
  Content : <br/>
  <textarea name="message" cols="50" rows="10"></textarea><br/>
  <input type="submit" name="submit" value="Submit" onclick="checkmail()"/> 
</form> 
</body> 
</html>`

2 个答案:

答案 0 :(得分:1)

试试这个

使用HTML5必需的归因来验证表单字段

<form action="javascript:checkmail();" method="post" enctype="multipart/form-data" name="form1" id="form1"> 
  Subject : <br/>
  <input type="text" name="subject" required id="subject"/> <br/>
  Choose your file: <br /> 
  <input name="csv" type="file" id="csv" accept=".csv" required/> <br/>
  Content : <br/>
  <textarea name="message" cols="50" required rows="10"></textarea><br/>
  <input type="submit" name="submit" value="Submit" onclick=""/> 
</form> 

答案 1 :(得分:1)

您应该向accept=".csv"添加input属性。

<input type="csv" name="file" id="csv" accept=".csv">

我已经尝试过你的代码,我发现我可以上传任何类型的文件。由于您的代码无法使用JavaScript运行警报消息。因此,另一种方法是添加accept来过滤只显示特定文件格式以避免不必要的错误。