2016-10-21 46 views
1

フォームを隠す問題がありました。私は列挙型にdriverType配列を持っています。列挙型からドライバフォームに文字列を渡すにはどうすればいいですか?PARTTIMEを選択すると、基本給フォームが非表示になりますか?Enumから文字列を取得してLaravel 5.3を生成する

は、ここに私の列挙型コードです:

<?php 

namespace App\Helpers\Enums; 

final class DriverType { 

const EMPLOYED = 0; 
const RENTAL = 1; 

public static function getList() { 
    return [ 
     DriverType::FULLTIME, 
     DriverType::PARTIME, 
    ]; 
} 

public static function getArray() { 
    $result = []; 
    foreach (self::getList() as $arr) { 
     $result[$arr] = self::getString($arr); 
    } 
    return $result; 
} 

public static function getString($val) { 
    switch ($val) { 

     case 0: 
      return "FULLTIME"; 
     case 1: 
      return "PARTTIME"; 
    } 
} 

} 

?> 

ここに私のDriverControllerコードだ:

public function render(View $view, $route = null, $obj = null, $method = 'POST') { 
$driverTypeList = DriverType::getArray(); 
$view->with(compact('driverTypeList')); 
return parent::render($view, $route, $obj, $method); 
} 

ここに私のドライバのフォームコードです:

<div id="basic-salary" class="form-group"> 
    <label>Basic Salary:</label> 
    {!! Form::text('basic_salary', null, array('class' => 'form-control')) !!} 
</div> 

<div id="Type-option" value="Type-option" class="form-group"> 
    <label>Type:</label> 
    {!! Form::select('type', $driverTypeList, null, array('class' => 'form-control')) !!} 
</div> 

<script> 
$(function() { 
var select = $('#Type-option'); 
select.on('change', function() { 
if (select.val() == "PARTTIME") { 
$('#basic-salary').hide(); 
} else { 
$('#basic-salary').show(); 
} 
}); 
}); 
</script> 

任意のアイデア?

答えて

0
var select = $('#Type-option'); 

divタグにselectorが書き込まれました。 change関数のjQueryはdiv要素ではなくselectbox要素で動作するはずです。

Form::select('type', $driverTypeList, 'null', array('class' => 'form-control','id' => 'ID_HERE'));  

はその後も、私が見るように、あなたのgetString関数はインデックスを取得する必要がありますので、

foreach (self::getList() as $arr =>$val) { 
    $result[$arr] = self::getString($arr); 
} 

と交換したコードの上にある必要はありだと思うこの

var select = $('#ID_HERE'); 
+0

申し訳ありません。問題はフォームに文字列を渡す方法です。 –

+0

selectboxのinspect要素を使用してブラウザのHTMLソースコードに表示されている内容を記述できますか? –

0
foreach (self::getList() as $arr) { 
    $result[$arr] = self::getString($arr); 
} 

のようなあなたのセレクターをします。

関連する問題