2017-06-14 4 views
0

Momentan bin ich in der Lage, meine Formulardaten über Ajax an meinen Controller zu übergeben, um in db einzufügen. Dies funktioniert gut und nach dem Einfügen bekomme ich Daten vom Controller und übergebe sie nur dann an einen anderen Controller, wenn dieser Ajax erfolgreich ist. Momentan hier stecken geblieben, weil ich diese Methode window.location.href verwende.Laravel nach Ajax erfolgreich einen anderen Controller mit Daten aufrufen

$.ajax({ 
method: "POST", 
url: "{{ URL::asset('paysubmit') }}", 
data: {eID:eID,amount:amount,"_token": "{{ csrf_token() }}" }, 
              success: function(data) { 
              window.location.href = "{{ URL::asset('/cds') }}"; 

} 

Im paysubmit Controller Ich bin mit dieser Methode Rückkehr Ansicht zur Zeit ('CDs') -> mit ($ data); aber ich muss dies in diesem Ajax tun, weil diese Codes in PHP sind? Ich muss improvisieren auf diesem window.location.href = "{{URL :: asset ('/ cds')}}";

+0

Ändern Sie {{URL :: asset ('/ cds')}} 'für' {{url ('cds')}} ' – Nerea

+0

Sie möchten Daten an eine andere Methode eines anderen Controllers auf Ajax-Erfolg übergeben. Recht? – Rahul

+0

Ich möchte die Datenansicht ('cds') übergeben -> mit ($ data); – user8012596

Antwort

1

Sie können eine der beiden Möglichkeiten nutzen, um Ihr Problem zu lösen:

  • einen weiteren Anruf tätigen in Ihrem Ajax-Erfolg Funktion und übergeben Sie die Daten von Ihrem ersten Anruf an den zweiten Anruf empfangen.

  • In Ihrer ersten Controller-Methode, nachdem Sie die Daten erhalten, rufen Sie die zweite Controller-Methode und dann das Ergebnis zurück.

Was Sie versuchen zu erreichen, ist nicht echt, wie Sie einen Blick auf Ajax-Erfolg Rückkehr, die im Grunde eine html ist, und wenn Sie auf eine andere URL umleiten werden Sie Ihre Daten verloren.

+0

Also was ist der richtige Weg? – user8012596

+0

Sie können zu einer der oben genannten Möglichkeiten gehen – Rahul

+0

Ich denke, die zweite Lösung ist viel praktikabler. –

1

Sie können nur einen weiteren Anruf innerhalb der success Callback Ihrer ersten Ajax-Anfrage schreiben. Und verwenden Sie data empfangen von Ihrem ersten Anruf innerhalb Ihrer zweiten Ajax-Anruf.

$.ajax({ 
    method: "POST", 
    url: "{{ '/home/view' }}", 
    data: { eID:eID}, 
    success: function(data){ 
     if (data){ 
      $.ajax({ 
       method="POST", 
       //other ajax settings here. 
      }) 
     } 
}); 
+0

Ich will nicht noch einen Ajax, denn einmal sein Ajax, dann wartet es auf der Rückseite? – user8012596

Verwandte Themen