php - 根据类别从输入类型=文件切换到文本字段

标签 php jquery html css forms

我想根据所选类别从输入类型=文件切换到文本字段。整个表单将使用处理上传功能的相同 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都可以!

最佳答案

(function($) {
  $(document).ready(function() {
    $('select')
      .change(function() {
        switch ($(this).val()) {
          case 'pho':
            $('#file').removeClass('hidden');
            $('#form-description').addClass('hidden');
            break;
          case 'vid':
          case 'pap':
            $('#form-description').removeClass('hidden');
            $('#file').addClass('hidden');
            break;
        }
      });
  });
})(jQuery)
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <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>
      <div id="form-description" class="hidden">
        <p>Description:</p>
        <textarea type="text" name="f-desc" id="f-desc" cols="40" rows="5" class="fullWidth"></textarea>
      </div>
      <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>

最好的方法是根据所选类别显示适当的元素

关于php - 根据类别从输入类型=文件切换到文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45359454/

相关文章:

php - 连接到远程 mysql 服务器

php - 在远程机器 php 上运行 bash 脚本

php - 通知接口(interface)方法是通过__call实现的?

php - 如何在 Ajax 和 PHP 中创建自动完成搜索?

javascript - 如何使用Jquery获取基于文本的特定超链接对象

JQuery scrollTop() 没有做任何事情

html - div打破了旁边div的大小

javascript - 基金会 4 : Orbit: Initialitation after page loading & Ajax: Reinitialization

带有 thead 和 tbody 元素的表上的 jQuery slideToggle。没有动画。

html - 什么时候最好使用 HTML 表示标签或 CSS 来设计元素?