我是javascript和php的初学者,并且我一直在尝试寻求解决方案已有2天了,这可能很容易,但是我找不到任何解决方案。 所以,我有带文件输入和按钮的index.php文件,我希望当用户单击按钮时它执行一个js函数,该函数将调用excelparse.php文件来处理上传的文件,但是我不知道我可以在函数上调用excelparse.php文件。 如何在on.click函数上调用excelparse.php文件?
//index.php
<form>
<div class="form-group">
<label for="ficheiro">Select a file</label>
<input type="file" class="form-control-file" id="ficheiro">
</div>
<button type="button" id="parse" class="btn btn-light">Parse</button>
</form>
//js.js
parse.on("click", function() {
});
//excelparse.php
$path_parts = pathinfo($_FILES["file"]["name"]);
$extension = $path_parts['extension'];
if ($extension == 'xls') {
$extension = 'Xls';
}
elseif ($extension == 'xlsx') {
$extension = 'Xlsx';
}
move_uploaded_file($_FILES['file']['tmp_name'],('files/tmp'));
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($extension);
$spreadsheet = $reader->load("files/tmp");
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet ->getRowIterator() as $row) {
$cellIterator = $row ->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
$array = array();
foreach ($cellIterator as $cell) {
if (!is_null($cell)) {
$value = $cell->getFormattedValue();
$array[] = $value;
}
}
print_r($array);
}
答案 0 :(得分:0)
您不能在HTML文件(如Javascript)中执行PHP命令。
PHP是一种服务器端语言,它将在服务器中执行并将响应推送到客户端。
您需要在JavaScript中使用AJAX
来调用URL (your php file)
(jQuery很简单)。
一个简单的jQuery Ajax请求就像
function callPhp() {
$.ajax({
url: "http://server.com/yourPhpFileUrl.php"
}).done(function() {
alert(0);
});
}
在您的代码中
您可以使用表单提交方法提交文件,
<form action='http://server.com/yourPhpFileUrl.php' method='post' enctype='multipart/form-data>
否则
您还可以使用AJAX请求发送文件