2016-08-09 15 views
1

Ich baute einen Ajax Post, der jeden Schiebereglerwert (ich benutze jquery ui Slider) zu meinem Controller sendet.Laravel Ajax Post gibt 500 zurück

Der Code Ajax:

public function editProductPost(Request $request) 
{ 
    Log::info($request->get('value')); 

    return view('product.edit', [ 
     'sliderValue' => $request->get('value') 
    ]); 
} 

Log::info($request->get('value'));

Aber ich bekomme Das gibt mir den richtigen Schieber Wert, dies:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

$.ajax({ 
    type: 'post', 
     contentType: "application/json", 
    url: "{{ Route('editProductPost', $product->id) }}", 
    headers: { 
     'X-Requested-With': 'XMLHttpRequest' 
    }, 
    data: JSON.stringify({ 
     value: getSliderVal, 
     productId : getPrId 
    }), 
    datatype: 'json', 
    success: function(response) { 
     // get response 
     console.log(response.sliderValue) 
    } 
}); 

Und ich dies in meinem Controller-tue Fehlermeldung in meiner Browser-Konsole:

POST http://localhost/myApp/public/product/edit/98 500 (Internal Server Error)

Später möchte ich diese sliderValue innerhalb einer PHP-Schleife aus meiner Sicht nennen.

bearbeiten

Ich habe eine csrf token:

<meta name="csrf-token" content="{{ csrf_token() }}"> 

bearbeiten

Ich habe dies getan:

$sliderValue = $request->get('value'); 
    $route = 'updateProduct'; 

    return view('product.edit', compact(['sliderValue', 'route']))->render(); 

Die Konsole aus mir undefined und wenn ich diese {{ sliderValue }} bekomme ich einen Fehler, dass sliderValue nicht

+0

Wenn Sie Log :: info ($ Anfrage-> get ('Wert')) erhalten; Wert, dann sollten Sie JSON-Daten anstelle der Ansicht zurückgeben. – hizbul25

+0

@ hizbul25 Ich hatte dies früher gemacht, aber ich kann die Variable in der Ansicht nicht so verwenden (in meiner PHP-Schleife) – utdev

+0

hinzufügen 'Fehler: Funktion (Antwort) { console.log (response.responseText); } ' – jaysingkar

Antwort

0

Kleine Änderung des Codes definiert:

public function editProductPost(Request $request) 
    { 
     Log::info($request->get('value')); 
     $sliderValue = $request->get('value'; 

     return view('product.edit', compact('sliderValue'))->render(); 
    } 
+0

Danke, aber wie gesagt, ich hatte diese Codezeilen früher, wenn ich diese benutze, bekomme ich keinen Fehler und die Konsole gibt den korrekten Schiebereglerwert zurück, aber ich kann 'sliderValue' nicht als PHP-Variable in meiner Ansicht verwenden – utdev

+0

Ich habe eine Änderung vorgenommen, bitte versuchen Sie es. – hizbul25

+0

ok krank versuchen danke – utdev

0

Das Problem hier ist, dass Sie einen Blick in Ihrem Controller sind zurück. Wenn Ihre Ansicht {{$ sliderValue}} darin verwendet, sollte es funktionieren. Aber es gibt keine Möglichkeit für JavaScript, die Variable sliderValue zu erhalten.

Wenn Sie die sliderValue wollte so ist, können Sie dieses Array zurück

return [ 'view' => view('product.edit', compact(['sliderValue', 'route']))->render(), 'sliderValue' => $sliderValue ];

diese Weise können Sie mit 2 Objekte in JavaScript ein Objekt senden, sollte man die Ansicht enthalten und die zweite wird enthält nur den Wert.

+0

hmm ok meinst du, dass ich die Variable in PHP nicht verwenden kann? – utdev

Verwandte Themen