2017-02-16 4 views
1

Ich möchte den Wert von nur einem Feld eines Formulars mit zwei Feldern als Routenparameter für einen Controller verwenden. Was ich bisher erreicht habe, war nur ein Durcheinander von Abfrage-String-Parametern, die an die URL angehängt wurden.So übergeben Sie Formulardaten als Routenparameter in Laravel 5.2

Meine Form:

{{ Form::open(['route' => ['anuncio.especificar_tipo_imovel', $valorCep = 'valorCEp'], 'method' => 'GET']) }} 
    <input type="hidden" value="14405024" id="valorCep" name="valorCep"/> 
    <label for="tbCep"/> 
     <input autocomplete="off" id="tbCep" style="width:400px;" name="cep" type="text" /> 
    </label> 
    <input type="submit" value="continuar"> 
{{ Form::close() }} 

Ich habe eine Route wie folgt aus:

Route::get('anuncio/especificar_tipo_imovel/{valorCep}', [ 
    'as' => 'anuncio.especificar_tipo_imovel', 
    'uses' => '[email protected]_tipo_imovel' 
]); 

und ein Action-Methode wie diese

public function especificar_tipo_imovel(Request $request, $valorCep) 
{ 
    return view('especificar_tipo_imovel'); 
} 

Der Wert I senden wollen, ist der Wert des versteckten Feldes: valorCep Ich möchte eine URL wie http://my_route/34834839 die Nummer des Wertes des versteckten Feldes und der $valorCep Routenparameter.

meine url ist auf diese Weise:

http://my_route/valorCEp?valorCep=14405024&cep=Rua++jardim+pedreiras14405024 
+0

$ xxxx = $ request-> valorCep; Sie können so – Sona

+0

verwenden Mein Problem ist nicht, den Wert in der Steuerung zu erhalten. Mein Problem ist das URL-Format. –

+0

Sorry, bekomme nicht genau was du willst ?? – Sona

Antwort

0

Beachten Sie, dass $valorCep in der Ansicht mit der wörtlichen 'valorCep' zuweisen. A Sie sollten es von Ihrem Controller weitergeben.

public function especificar_tipo_imovel(Request $request, $valorCep) 
{ 
    return view('especificar_tipo_imovel', ['valorCep' => $valorCep]); 
} 

und in der Ansicht:

{{ Form::open(['route' => ['anuncio.especificar_tipo_imovel', $valorCep], 'method' => 'GET']) }} 
+0

Ich weiß, dass mit dem Literal 'ValorCep' ich keine dynamische Routing erhalten werde. Ich benutze es nur, um zu zeigen, wo ich feststecke und was ich versuche zu tun. –

+0

Ok, ich glaube, ich verstehe, was Sie jetzt versuchen, Sie können eine Route erstellen, indem Sie die Abfrageparameter als Schlüsselwertpaare übergeben. Aussehen: '['route' => ['anuncio.especificar_tipo_imovel', 'valorCep' => $ valorCep, 'cep' => $ cep]]' Allerdings sollten Sie keine Namen Kollisionen zwischen Abfrage und Route behaupten Parameternamen. – motia

0

können Sie diese verwenden

public function especificar_tipo_imovel(Request $request, $cep) 
{ 
    $valorCep = $request->valorCep; 

    return view('especificar_tipo_imovel', ['valorCep' => $valorCep]); 
} 
0

Sie nicht den Wert des versteckten Eingang auf die Route wie diese $valorCep = 'valorCEp' passieren kann, auf diese Weise sind Sie übergeben Sie einfach die Zeichenfolge 'ValorCEP' als Parameter. Überprüfen Sie Ihre URL, ist die Route mit dem Parameter die Zeichenfolge plus die Werte der Eingabe (Ursache der GET-Methode).

Wenn Sie den Wert von valorCep nicht in eine Variable eingeben und diese Variable stattdessen an die Zeichenfolge 'valorCEp' übergeben, benötigen Sie Javascript. Etwas wie folgt aus:

Script (mit jQuery)

$('input[type=submit]').on('click', function(event){ 
    event.preventDefault(); 
    var valorCep = $('#valorCep').val(); 
    $('form').attr('action', 'anuncio/especificar_tipo_imovel/'+valorCep); 
    $('form').submit(); 
}); 
+0

das funktioniert nicht, der Wert der Eingänge wird gesendet –

Verwandte Themen