如何从HTML表单到PHP脚本中获取select选项值?
我正在为我的网站制作一个表格,我希望用户能够上传一个DXF文件和一些关于材料的信息到我的网站服务器 现在我可以把文件上传到服务器上了。但由于某些原因,我无法让PHP脚本读取表单中的select选项中的值 我认为问题在于PHP脚本不知道在哪里查找值,因为当我提交表单时,我收到通知:未定义索引: 我已经尝试使用ifisset来查看是否确实存在要保存的值。我也尝试过启动我想要保存值的变量,但没有任何效果 我对HTML和PHP非常陌生,我只使用了两天,所以它可能是我所缺少的非常简单的东西 这是我使用的HTML表单:如何从HTML表单到PHP脚本中获取select选项值?,php,html,Php,Html,我正在为我的网站制作一个表格,我希望用户能够上传一个DXF文件和一些关于材料的信息到我的网站服务器 现在我可以把文件上传到服务器上了。但由于某些原因,我无法让PHP脚本读取表单中的select选项中的值 我认为问题在于PHP脚本不知道在哪里查找值,因为当我提交表单时,我收到通知:未定义索引: 我已经尝试使用ifisset来查看是否确实存在要保存的值。我也尝试过启动我想要保存值的变量,但没有任何效果 我对HTML和PHP非常陌生,我只使用了两天,所以它可能是我所缺少的非常简单的东西 这是我使用的H
<form action = "../php/uploadDXF.php" method = "POST" enctype="multipart/form-data">
<!-- Selector for differnet materials -->
<select id = "material">
<option value="0" >- Selecet material -</option>
<option value="1" >Stainless steel</option>
<option value="2" >Hot rolled</option>
<option value="3" >Cold rolled</option>
<option value="4" >Aluminium</option>
</select>
<!-- Selector for material thicknesses, see selector.js -->
<select id = "thickness">
<option value="0" >- Selecet thickness -</option>
</select>
<!-- Form for uploading a .DXF file, see uploadDXF.php -->
<input type = "file" name = "inputDXF"/>
<button type = 'submit' name = 'submit'>Upload</button>
</form>
这是我的PHP脚本:
<?php
// php script for uploading a file to the webserver via the website.
//Variables
$maxFileSize = 10000;
$selectedMaterial = 'test1';
$selectedThickness = 'test2';
if(isset($_POST['submit'])) { // Run this program when Upload is clicked
// Material and thickness
if(isset($_POST['material'])) {
}
if(isset($_POST['thickness'])) {
}
$selectedMaterial = $_POST['material']['value'];
$selectedThickness = $_POST['thickness']['value'];
$file = $_FILES['inputDXF']; // The file being uploded
// Name, size, location, error and type of file being uploaded
$fileName = $_FILES['inputDXF']['name'];
$fileSize = $_FILES['inputDXF']['size'];
$fileTmpName = $_FILES['inputDXF']['tmp_name'];
$fileError = $_FILES['inputDXF']['error'];
$fileType = $_FILES['inputDXF']['type'];
// ---------------------------------------------
$fileExt = explode('.', $fileName); // Explode name in to array
$fileActualExt = strtolower(end($fileExt)); // Make last entry in array lowercase
$allowedFileTypes = array('dxf'); // Files that are allowed to be uploaded
if (in_array($fileActualExt, $allowedFileTypes)) { // Is the file-type allowed?
if($fileError === 0) { // Is the file free of errors?
if ($fileSize < $maxFileSize) { // Is the file too big?
$fileNameNew = uniqid('', true).".".$fileActualExt; // Gives the uploaded file a uniqe name
$fileDestionation = '../uploads/'.$fileNameNew; // Where the file should be uploaded
move_uploaded_file($fileTmpName, $fileDestionation); // Function that uploads the file
} else {
echo "Your file is too big. Maximum size allowed: 10mb.";
}
} else {
echo "There was an error uploading your file.";
}
} else {
echo "The file must ba a .DXF";
}
}
echo $selectedMaterial;
//header("Location: http://localhost/Version%203/pages/test.html");
?>
我知道你不应该包括完整的PHP脚本,但我不确定什么是重要的
我试图做的是在PHP脚本的末尾回显保存的变量$selectedMaterial和$selectedThickness的值,看看它是否有效。但它们永远不会改变我在选择选项中选择的内容
请帮忙 表单元素需要name属性显示在$\u POST数组中:
为“选择”菜单指定一个名称,而不仅仅是一个id,它是显示在POST数组中的名称。还有-美元POST['material']['value']是关于什么的?奇特的语法-应该是$_POST['material'],当元素被指定了materialoops名称时,没有看到您的评论@RamRaidernp@JayBlanchard~没什么害处..好的!我不知道它需要一个名字alsol。$u POST['material']['value']只是我尝试过的东西,有点绝望:p谢谢你的快速回答!使用名称,如下所示,您将能够在POST数组中访问它-尽管您应该使用isset或empty来确定值是否在POST数组中,然后再盲目地将其分配给变量并继续使用它
<form action = "../php/uploadDXF.php" method = "POST" enctype="multipart/form-data">
<!-- Selector for differnet materials -->
<select id = "material" name="material">
<option value="0" >- Selecet material -</option>
<option value="1" >Stainless steel</option>
<option value="2" >Hot rolled</option>
<option value="3" >Cold rolled</option>
<option value="4" >Aluminium</option>
</select>
<!-- Selector for material thicknesses, see selector.js -->
<select id = "thickness" name="thickness">
<option value="0" >- Selecet thickness -</option>
</select>
<!-- Form for uploading a .DXF file, see uploadDXF.php -->
<input type = "file" name = "inputDXF"/>
<button type = 'submit' name = 'submit'>Upload</button>
</form>