2016-02-02 6 views
1

Я хочу сохранить телефоны компании. Я использую несколько вариантов в форме для перечисления телефонов.Невозможно получить множественное входное значение выбора в Laravel 5.0

Я пытаюсь получить входные значения из множественного выбора, но dd($request->input('Phones')); всегда возвращает null.

Вот часть моей формы (add_company.blade.php):

{!! Form::model($company = new App\Models\Setting\Organization\Company, ['method' => 'POST', 'action' => 'Setting\Organization\[email protected]', 'files'=>true]) !!} 

<div class="form-group"> 
    <!-- Form::label parameters : LabelFor, Text --> 
    {!! Form::label('NewPhone', 'Telephones : ', ['class' => 'col-lg-3 col-md-3 col-sm-3 col-xs-3']) !!} 

    <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8"> 
     {!! Form::text('NewPhone', null, ['class' => 'form-control', 'id' => 'txtNewPhone']) !!} 
    </div> 

    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1"> 
     {!! Form::button('', ['class' => 'form-control btn btn-info fa fa-plus', 'id' => 'btnAddPhone']) !!} 
    </div> 

</div> 

<div class="form-group"> 
    <div class="col-lg-3 col-md-3 col-sm-3 col-xs-3"></div> 

    <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8"> 
     {!! Form::select('Phones[]', $phones, null, ['class' => 'form-control', 'multiple' => true, 'id' => 'ddPhone']) !!} 
    </div> 

    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1"> 
     {!! Form::button('', ['class' => 'form-control btn btn-danger fa fa-minus', 'id' => 'btnDelPhone']) !!} 
    </div> 

</div> 

<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2"> 
    {!! Form::submit('Add Company', ['class' => 'btn btn-primary']) !!} 
</div> 
{!! Form::close() !!} 

Вот мой JQuery добавить <option> в Select Input:

$('#btnAddPhone').on('click', function(){ 
    var newPhone = $('#txtNewPhone').val(); 
    if($("#ddPhone option[value='" + newPhone + "']").length == 0){ 
     $('#ddPhone').append($('<option>', { 
      value: newPhone, 
      text: newPhone 
     })); 
    } 
}); 

$('#btnDelPhone').on('click', function(){ 
    var selected = $("#ddPhone option:selected").text(); 
    $("#ddPhone option[value='" + selected + "']").remove(); 
}); 

.

.

Вот отношения телефоны в компании модели (App \ Models \ Настройка \ Организация \ Company.php):

public function phones(){ 
    return $this->hasMany('App\Models\Setting\Organization\Phone', 'OwnerID', 'CompanyCode'); 
} 

телефоны Атрибут в компании Модель:

public function getPhonesAttribute(){ 
    return $this->phones()->lists('PhoneNumber'); 
} 

.

.

А в модели телефонов (App \ Models \ Настройка \ Организация \ Phone.php):

protected $fillable = ['OwnerID', 'PhoneNumber']; 
public function company(){ 
    return $this->belongsTo('App\Models\Setting\Organization\CompanyCode', 'CompanyCode'); 
} 

.

.

Метод магазин в Настройка \ Организация \ CompaniesController:

public function store(CompanyRequest $request){ 
    $phones = $request->input('Phones'); 
    dd($request->input('Phones')); 
    if(count($phones) > 0){ 
     foreach($phones as $phone){ 
      Phone::create(['OwnerID' => $request->CompanyCode, 'PhoneNumber' => $phone]); 
     } 
    } 
    flash()->success('Company ' . $request->Name . ' Added.'); 
    return redirect('company'); 

} 

Если удалить dd($request->input('Phones'));, ничего не будут сохранены в базе данных.

Пожалуйста, помогите, спасибо прежде.

ответ

1

для нескольких избранных вы должны передать Выбранные значения, как ваш код, что я понимаю, вы добавляете параметры в ddPhone, но вы не делаете их выбранными. Поэтому попробуйте это.

$('#btnAddPhone').on('click', function(){ 
    var newPhone = $('#txtNewPhone').val(); 
    if($("#ddPhone option[value='" + newPhone + "']").length == 0){ 
     $('#ddPhone').append($('<option>', { 
      value: newPhone, 
      text: newPhone, 
      selected: true 
     })); 
    } 
}); 
+0

Это сработало! Но что, если я хочу добавить все в selectbox, хотя элемент не выбран? –

+0

вы можете добавить элемент, но вы не получите значения DropDown до тех пор, пока вы не пометите их как выбранные, потому что в форме post выбраны только выбранные значения. Что вы хотите сделать, это ваши требования? – Qazi

+0

На самом деле, я просто хочу вставить все в поле «Выбор телефонов» в базу данных. Есть ли способ сделать это, не выбирая все элементы перед отправкой формы? –