【问题标题】:How to create more form fields by using javascript and then passing values to PHP如何使用 javascript 创建更多表单字段,然后将值传递给 PHP
【发布时间】:2011-09-10 06:44:07
【问题描述】:

您好,我想让用户可以点击“上传更多文件”按钮来创建一个额外的文件上传表单字段,他们也可以点击另一个名为“添加更多名称”的按钮来创建一个额外的“ input type='text'" 表单域。

应该限制可以使用各自按钮创建的文件上传或文本字段的数量。例如,应该有最多 5 个文件上传字段和最多 5 个文本字段。

用户点击“提交”按钮后,脚本将记录文件上传和文本表单字段的总数,并将这些数字传递给 PHP。例如,如果有 5 个文件上传和 5 个文本表单字段,则变量 $numfiles 将记录文件上传字段的数量,变量 $numtext 将记录文本字段的数量。

一个示例代码会很棒,谢谢。

【问题讨论】:

  • 看起来你没有尝试过任何东西......你应该谷歌一下。
  • jquery: $('#yourtextfieldplace').append('<input type="text" name="somename[]">'); 是最简单的方法。做“不超过 5 个”的业务有点多,但也很琐碎。
  • 这看起来更像是 ScriptLance 作业,而不是 StackOverflow 问题
  • 你付多少钱.. 让我知道,我会提供代码。:-P 先做一些工作...

标签: php javascript forms dynamic


【解决方案1】:

可能是这样的:

var totalFields = <?=$total_fields?>;
var currentFields = 0;

var addMode = document.getElementById('addMore');
var form = docuement.getElementsByTagName('form')[0];

addMore.onclick = function() {
   if (currentFields >= totalFields) {
      return false;
   }
   var newField = document.createElement('input');
   newField.setAttribute('type', 'file');
   newField.setAttribute('name', 'file'+currentFields);
   form.appendChild(newField);
   currentFields++
}

然后

<?
   foreach ($_FILES as $file) {
      // i guess you know what you should do
   }
?>

未测试...仅作为示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多