【问题标题】:return the values of multiple ( multiple select )返回多个值(多选)
【发布时间】:2016-10-28 17:19:23
【问题描述】:

我有一个动态表单,可以复制自己以进行批量插入。

示例:我的表单有多个选择

<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>

当我像这样复制它时

<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>

<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>

并选择例如两个选择中的所有选项,它会返回类似

Array
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [4] => 1 
    [5] => 2 
    [6] => 3 
)

有了这个。我不知道第一个选择中选择了什么,第二个选择了什么 我该怎么做呢

---- 编辑 -----

点击输入时我通过jqyery复制表单

 jQuery("body").on("click", '.duplicate', function(){

            $(".newform"). append(jQuery(".form").html());
            return false;

        });

重复按钮所在的类 (.duplicate) 并且 div 中的表单具有类 (.form) 并且有空的 div 有类 (.newform)

当我单击按钮 (.duplicate) 时,它会将 (.form) 复制到 (.newform) 中

----- 编辑 ------

我修改了 javascript 以适应接受的答案

jQuery("body").on("click", '.duplicate', function(){
 $key = $(".newform>div").length;
 $(".newform"). append(jQuery(".form").html().replace(new RegExp('\\[\\]\\[\\]', 'g'),'['+$key+'][]'));
}); 

我只是计算了 (.newform) 中的 div 以使其成为键 然后将每个 [][] 替换为 []['key']

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    如果您需要它们始终具有相同的名称,您可以这样做:

    <?php
    
        if (isset($_POST['type']))
            var_dump($_POST['type']);
    ?>
    <form method="POST">
    
        <select name="type[1][]" multiple>
         <option>1</option>
         <option>2</option>
         <option>3</option>
        </select>
    
        <select name="type[2][]" multiple>
         <option>1</option>
         <option>2</option>
         <option>3</option>
        </select>
        <input type="submit" value="Send"/>
    </form>
    

    它们会在服务器端变成一个多维数组。

    所有选项的结果:

    array (size=2)
      1 => 
        array (size=3)
          0 => string '1' (length=1)
          1 => string '2' (length=1)
          2 => string '3' (length=1)
      2 => 
        array (size=3)
          0 => string '1' (length=1)
          1 => string '2' (length=1)
          2 => string '3' (length=1)
    

    【讨论】:

    • 我复制 div 及其所有内容的问题,更改密钥将是错误的,我知道这样做并非不可能,但如果有任何最简单的方法来复制所有 div,我尝试了 type[][] 但它返回了一些意想不到的东西
    • 如果重复并始终保持相同的名称,您将无法知道哪个值属于哪个选择。将您的重复代码添加到您的问题中,我会看看可以做什么。
    • 你仍然必须这样做,但使用 javascript 以他们需要的方式添加选择。
    • 我修改了 java 脚本代码以使其适合这个答案,我将编辑我的问题
    猜你喜欢
    • 2018-08-16
    • 1970-01-01
    • 2010-09-29
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2018-03-10
    • 2015-08-19
    相关资源
    最近更新 更多