php - 来自同一单选按钮组的值数组

标签 php jquery html laravel

我正在 Laravel 中创建一个网站,用户需要在其中输入他的假名,并且在设置页面上他可以使用 jQuery 添加多个假名。当他单击加号按钮时,会添加一个文本字段、单选按钮和减号字段。

单选按钮 用于将其中一个昵称标记为默认。

Image: screenshot of how the inputs look like

如何从这些单选按钮中传递一组值?即,如果我选择 4 个假名中的第 3 个作为默认:

{'0' => null, '1' => null, '2' => '1', '3'=> null}

所以我可以将这个数组合并到假名数组中,如下所示:

{'0' => {'0' => 'John Doe', '1' => null},
'1' => {'0' => 'John Smith', '1' => null},
'2' => {'0' => 'John Wayne', '1' => '1'},
'3' => {'0' => 'John X', '1' => null}}

最后,我会像这样保存它,或者其他一些也会检查是否已经存在然后更新的方法,但现在这并不重要:

    foreach($pseudonyms as $pseudonym)
        $user->pseudonyms()->create(['name' => $pseudonym[0], 'status' => $pseudonym[1]]);

我可能只是没有经验,不知道一些 html/php 基础知识可以让我这样做,但我能做什么 :)

无论如何,这是输入的 Blade 部分:

    <div class="input_fields_wrap">
        <div class="row">
            <div class="col-md-8">
                {!! Form::text('pseudonyms[]', null,['class' => 'form-control']) !!}
            </div>
            <div class="col-md-2">
                {!! Form::radio('default[]', 1, null,['class' => 'form-control']) !!}
            </div>
            <div class="col-md-2">
                {!! Form::button('<i class="fa fa-plus" aria-hidden="true"></i>',['class'=>'btn btn-default add_field']) !!}
            </div>
        </div>
    </div>

这是在 .input_fields_wrap 中附加额外字段的 jQuery 部分

    $(document).ready(function() {
    var max_fields      = 5; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap .row"); //Fields wrapper
    var add_button      = $(".add_field"); //Add button ID

    var added_fields = 1; //initial text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(added_fields < max_fields){ //max input box allowed
            $(wrapper).append('<div class="added"><div class="col-md-8 class1"><input type="text" name="pseudonyms[]" class="form-control"/></div>' +
                    '<div class="col-md-2 class2" ><input type="radio" name="default[]" value="1" class="form-control"/></div>' +
                    '<div class="col-md-2 class3" ><input type="button" value="-" class="remove_field btn btn-default add_field fa fa-minus"></div></div>'); //add input box
            added_fields++; //text box increment
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault();
        $(this).closest('.added').remove();
        added_fields--;
    })
});

感谢您的意见!

最佳答案

当然,解决方案正在处理其他事情,思考 2 分钟后返回并给出答案。使用单选按钮值中的键创建新数组,因此我可以将它与另一个数组合并

    foreach($request->pseudonyms as $key => $value)
    {
        if(array_key_exists($key, $default))
        {
            $pseudonyms[$key] = array($value, $default[$key]);
        } else {
            $pseudonyms[$key] = array($value, null);
        }
    }

关于php - 来自同一单选按钮组的值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312958/

相关文章:

javascript - 具有动态值的 jquery 'attribute contains' 选择器

jquery 切换/显示隐藏 div

jquery - 在 Shadowbox 中加载内容之前如何防止 iframe 白色闪烁?

javascript - 如何将动态值插入到 SQL 数据库中?

php - 更新并从数据库表中选择

php - 尝试为 Apache 负载均衡器声明自定义 cookie 时出现错误

php - CodeIgniter Controller 被调用两次

jquery - 如果没有缩小的 CSS,DataTables 排序图标不会显示

android - ContentHandler 以错误的顺序进行回调

javascript - JS如何计算表格中行的值?