【发布时间】:2019-11-07 15:52:23
【问题描述】:
我有一个上传文件的索引页面。一个输入按钮用于上传文件,另一个按钮将成绩导入外部系统。要导入成绩,用户应经过身份验证。因此,我创建了两个表单,每个按钮都在一个表单中。但是,它不起作用,因为第一次上传成绩并单击导入成绩,它工作得很好。第二次,当我点击“上传文件”按钮时,它会同时进行导入分级。我如何将这些操作分开,或者更好的是,将这两个操作添加到同一个按钮中?
我已经尝试通过将action="authenticateUser.php" 添加到第一个form 并删除第二个form 来合并这两个表单,但它不起作用。
<title>Import Grades Widget</title>
<form action="" method="POST" enctype="multipart/form-data">
<labeL class="tool-actions"> <span>Choose CSV File:</span></labeL>
<input class="tool-actions" type="file" accept="text/csv" id='uploadfile' name="userfile" />
<p>
<!--add space btw buttons -->
<br>
<input class="btn-primary" type="submit" name="send" id="btnSend" value="Upload file" />
<labeL class="tool-actions"> <span></span></labeL>
<?php
require_once "upload.php";
?>
<p id="info-message-crn" style="color:red"></p>
</form>
<form method="POST" enctype="multipart/form-data" action="authenticateUser.php" id="configForm">
<input class="btn-primary" type="submit" id="btnImport" name="btnImport" value="Import Grades" />
<?php
if(file_exists("uploads/uploadFile.csv") AND isset($_POST['btnImport'])) {
require_once ('apiCalls.php');
}else {
?>
<p style="color:grey" id="info-message">
<?php echo "Select a csv file.";?>
</p>
<?php
}
?>
</form>
【问题讨论】:
-
您需要决定是要将这些操作分开还是将它们合并到一个步骤中。如果您想将它们分开,那么您有几个选择 - stackoverflow.com/questions/14071250/…。如果您想将这两个操作保持在一个步骤中,那么我将使用一个名为 Upload and Process 的表单,该表单负责上传并在之后直接处理数据。
-
@waterloomatt 由于我有第二种形式的操作,我该如何合并?当我添加操作(即authenticateUser.php)时,我的上传不再起作用。
-
请帮忙!我试图分开,因为我将 authenticateUser.php 作为第二种形式的操作,但它不起作用。有什么建议吗?
-
另外,为什么不在每个表单上设置不同的action?让您的上传表单将其数据发布到 upload.php,流程表单将其数据发布到 process.php。表单中不要有任何 include 调用——这会使事情复杂化。