2017-10-10 11 views
0

J'ai un problème avec une case à cocher: lors d'un LIVEsearch, la valeur de la case à cocher est toujours définie sur 1/true. Quand je fais la même chose dans une recherche normale (sans le fichier js) je n'ai pas ce problème. tout d'abord le code de ma case à cocher:Laravel Checkbox renvoie toujours vrai dans la recherche en direct

{{ Form::checkbox('deleted', '1' , null , array('id' => 'search-deleted'))}} 

que le code de mon javascript (je suppose que le problème est d'obtenir la valeur de la case à cocher)

<script> 
$(document).ready(function(){ 
    $(".search").keyup(function(){ 
     var staffid= $("#search-staffid").val(); 
     var firstName= $("#search-first-name").val(); 
     var lastName= $("#search-last-name").val(); 
     var birthday= $("#search-birthday").val(); 
     var children= $("#search-children").val(); 
     var deleted= $("#search-deleted").val(); 
     if(staffid == "" && firstName == "" && lastName == "" && birthday == "" && children == "") { 
       $("#liveResult").html("<b>Suchergebnisse werden hier angezeigt</b>"); 
     }else { 
       $.get("{{ url('demos/livesearch') }}" + 
        '?staffid=' + staffid + 
        '&first_name=' + firstName + 
        '&last_name=' + lastName + 
        '&birthday=' + birthday + 
        '&children=' + children + 
        '&deleted=' + deleted 
       , function(data) { 
        $("#liveResult").html(data); 
      }); 
     } 
    }); 
}); 
</script> 

Comme vous le voyez, j'ai quelques-uns d'autres domaines, ils fonctionnent sans aucun problème. Enfin, le code de mon contrôleur:

public function liveSearch(Request $request) 
{ 
    $data = [ 
     'id'   => $request->staffid, 
     'first_name' => $request->first_name, 
     'last_name'  => $request->last_name, 
     // converts date format only if birthday != null 
     'birthday'  => ($request->birthday ? date('Y-m-d', strtotime($request->birthday)) : null), 
     'children'  => $request->children, 
     'deleted'  => $request->deleted 
    ]; 

    if (is_null($data['id']) && is_null($data['first_name']) && is_null($data['last_name']) && is_null($data['birthday']) && is_null($data['children'])) 
    { 
     return view('staff.livesearch'); 
    } 

    else 
    { 
     dd ($data['deleted']); 
    } 
} 

Répondre

2

La value de votre case à cocher est toujours 1; ce que vous voulez vraiment savoir, c'est si oui ou non il est vérifié.

// boolean 
var deleted = $("#search-deleted").prop('checked'); 
+0

Oui, merci beaucoup! –