2016-10-21 5 views
1

Ich hatte ein Problem mit dem Verstecken von Formular, ich habe driverType Array in meinem enum. Wie kann ich den String von enum an driverform übergeben und wenn ich PARTTIME wähle, wird das Grundgehaltsformular ausgeblendet?String von Enum erhalten, um Laravel zu bilden 5.3

Hier ist meine Enum-Code:

<?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"; 
    } 
} 

} 

?> 

hier ist mein DriverController Code:

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); 
} 

hier ist mein Fahrer Formularcode:

<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> 

irgendeine Idee?

Antwort

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

Sie haben Selektor auf das Div-Tag geschrieben. jQuery auf Change-Funktion sollte mit Selectbox-Element nicht mit Div-Element arbeiten.

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

dann tun Sie Ihre Wähler wie diese

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

Sorry funktioniert nicht.Ich denke, das Problem ist, wie die Zeichenfolge übergeben, um –

+0

können Sie schreiben, was in Ihrem Browser HTML-Quellcode mit Inspect-Element in Selectbox angezeigt wird? –

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

denken auch mit

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

ersetzen obigen Code sein müssen, weil, wie ich Ihre getString Funktion sehen sollten Index erhalten.