【发布时间】:2017-07-27 19:28:43
【问题描述】:
我想根据所选类别从输入类型=文件切换到文本字段。整个表单将通过处理上传功能的相同 php 代码。
这是我的表格:
<form action="" method="POST" enctype="multipart/form-data" class="uploadForm">
<div>
<select name="category">
<option value="pho" selected>Images</option>
<option value="vid">Video</option>
<option value="pap">Paper</option>
</select>
<input type="file" name="files[]" multiple id="file"/>
<p>Title: <input type="text" name="f-title" id="f-title" cols="40" rows="5" class="fullWidth"/>
</p>
<p>Description:</p>
<textarea type="text" name="f-desc" id="f-desc" cols="40" rows="5" class="fullWidth"></textarea>
<p>
<label class="radio">Portfolio</label>
<input type="radio" name="folio" value="TRUE" checked/> <span class="radio">Yes</span>
<input type="radio" name="folio" value="FALSE"/> <span class="radio">No</span>
</p>
<input type="submit" value="Upload" id="submit"/>
</div>
</form>
如您所见,我想处理 3 种类型:图像、pdf 和视频。对于视频类型,我希望能够在表单中粘贴一个 youtube 链接,该链接最终将保存在数据库中并显示在网站的画廊中。但是,如果我只是添加链接,则文件上传将为空。反之亦然:如果我添加图片,链接将为空。
在这些文档类型之间切换的最佳方式是什么?
PS:Javascript 或者 jquery 都可以!
【问题讨论】:
-
你愿意使用任何 JavaScript 来解决这个问题吗?因为那将是最简单/最快/可能最好的方法。
-
我建议您为每个类别设置多个输入元素,然后根据选择的类别显示适当的元素(使用 javascript)。然后在服务器端根据类别值从帖子中选择适当的值。
-
我建议在这种情况下遵循@PavelGalaton 的建议。这是一个比在 DOM 加载后更改元素类型更简洁的解决方案 - 根据您的布局方式,您甚至可以使用 CSS 进行切换
-
我同意新浪。使用 JS 将是最好的方法。但是,如果您真的想使用 php,那么 PavelGalaton 的建议就是您要走的路。如果还是不满意,可以 html '"onchange='"; ?>"' . 注意: 仅当文件为“.php”格式时才有效
-
哦,抱歉,可能还不够清楚。 Javascript 或 jQuery 很好:)。我已经有一些了,所以没问题。