【问题标题】:What are some ways to add meta informational inputs to file upload?有哪些方法可以将元信息输入添加到文件上传?
【发布时间】:2014-08-06 17:20:30
【问题描述】:

我有一个 jQuery 调用来动态添加和删除文件输入,以便用户可以在提交表单之前添加尽可能多的附件。我可以根据需要添加和删除附件。

 //New Attachments      
    $("button#add-another-row").click(function(){
        var newRow  = "<div class='new-attachment-row'>";
            newRow += "<button class='delete-btn'>Delete </button>";
            newRow += "<input name='attachments[]' type='file' /><br />";
            newRow += " OK for Customer:<input name='okForCustomer[]' type='checkbox' /></div>";
        $("#attachments-cell").prepend(newRow);

        return false;
    });

每个文件都应该在数据库中存储客户的 Ok / Not Ok ,我将使用它来确定该文件能够显示给我的用户的位置。

如何编写 javascript 以便将附件数组绑定到 ok/not OK 数组?我必须使用多维数组吗?语法是什么?

我正在使用 PHP/MySQL 后端来处理 POST 值。

【问题讨论】:

    标签: javascript php jquery mysql


    【解决方案1】:

    简单的选择是在您的 JS 代码中保留一个计数器变量,并将该计数器用作字段名称中的数组索引:

    例如

    var fields_displayed = 0;
    
    $("button#add-another-row").click(function(){
        fields_displayed++;
        var newRow  = "<div class='new-attachment-row'>";
            newRow += "<input name='attachments[" + fields_displayed + "]' type='file' /><br />";
    
                                                ^^^^^^^^^^^^^^^^^^^^^^^^---add this
    

    如果数组键是有效的键值,PHP 将尊重它们。然后,您可以在其他输入字段中使用 SAME 数组键,以便 foo[1] 与其他输入字段中的 bar[1]baz[1] 匹配。

    【讨论】:

    • 我想过这个,但是我怎么知道一个复选框是否没有被选中?如果不检查它不会通过 POST 发送?我可能会将其更改为单选按钮,但同样的问题我需要将它们绑定到文件。
    • if (isset($_POST['checkboxfield'][$i])) { ... the $i'th checkbox is checked }。未选中的复选框不会提交,因此您的 $_POST 数组中不会有相应的键
    猜你喜欢
    • 2012-03-23
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2013-05-09
    • 2010-11-06
    相关资源
    最近更新 更多