2016-12-24 13 views
2

私はLaravelでユーザが仮名を入力する必要があるWebサイトを作っています。設定ページでjQueryで複数の仮名を追加できます。彼がプラスボタンをクリックすると、テキストフィールド、ラジオボタン、およびマイナスフィールドが追加されます。同じラジオボタングループの値の配列

ラジオボタンは、これらのニックネームの1つをデフォルトとしてマークします。私はこれらのラジオボタンのうち、値の配列を渡すにはどうすればよい

Image: screenshot of how the inputs look like

?私はデフォルトに4つの仮名のうち、3番目を選択した場合、すなわち、:、最後に、私はこのようにそれを救う

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

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

だから私はのようになり仮名配列にこの配列をマージすることができますあるいはまた、既に存在しないかどうかを確認してから更新し、それは今重要ではありませんでしょういくつかの他の方法:

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

私はおそらくちょうど未経験だと私はやるようになるいくつかのHTML/PHPの基本を知りませんt帽子は、私はとにかく

:)何ができるのか、ここに入力があるブレード部分です:

<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

$(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--; 
    }) 
}); 
で追加フィールドを追加jQueryのの一部です。

ご意見ありがとうございます!

答えて

0

もちろん、解決策は何か他のものに取り組んでいました。戻ってきて、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); 
     } 
    } 
関連する問題