2017-08-04 71 views
1

我如何從一個textarea到另一個使用laravel和jquery ajax創造價值。 到目前爲止我有這個文件。 路線:如何使用Laravel + Jquery Ajax從textarea到textarea的價值?

Route::post('/post', '[email protected]'); 

控制器:

class PostController extends Controller 
{ 
     public function post(Request $request) 
    { 

$request->json()->all(); 

    } 
} 

JQuery的文件:

$(function(){ 


$('#insert').on('click', function(e){ 
    e.preventDefault(); 
var intrare = $('textarea#firsttextarea').val(); 
    $.ajax({ 
    type:'POST', 
    url: '/post', 
    data: {intrare: intrare}, 
    success: function(data){ 
     $('textarea#secondtextarea').val(data); 
    } 

}); 
}); 

}); 

和HTML:

<textarea class="form-control" name="firsttextarea" rows="10" id="firsttextarea" ></textarea> 

<button id="insert" class="btn btn-md btn-primary"><span class="glyphicon glyphicon-circle-arrow-right"></span>Insert</button> 

<textarea class="form-control" name="secondtextarea" rows="10" id="secondtextarea" ></textarea> 

當我按下按鈕沒有任何反應。

+0

它在開發人員工具中說什麼?你的控制器方法沒有返回響應。 – Win

+0

什麼也沒有,這就是爲什麼我混淆它應該說些什麼 –

+0

我沒有形式的行動,也許我應該使用?我是laravel和jquery的新手。 –

回答

1

試試這個,你沒有在Controller方法中返回響應。

class PostController extends Controller 
{ 
    public function post(Request $request) 
    {  
     return response()->json([ 
      'data' => $request->get('intrare'), 
     ]); 
    } 
} 

那麼,這個在您的刀片文件

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

與下方添加到您的頭部和更換你的JS:

$(function() { 

    // We need CSRF Token in our ajax request so we can 
    // validate the POST request 
    $.ajaxSetup({ 
    headers: { 
     "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") 
    } 
    }); 

    // Insert text from first textarea to the other textarea 
    $("#insert").on("click", function(e) { 
    e.preventDefault(); 
    var intrare = $("textarea#firsttextarea").val(); 
    $.ajax({ 
     type: "POST", 
     url: "/post", 
     data: { intrare: intrare }, 
     success: function(response) { 
     $("textarea#secondtextarea").val(response.data); 
     } 
    }); 
    }); 

}); 
+0

仍然沒有:( –

+0

500內部服務器錯誤,導致js xhr –

+0

我嘗試開發人員與mozilla這給了 –

2

第一個問題大概可以在CSRF驗證。如果是這樣,您可以禁用它,或者添加{{ csrf_token() }}。 您的帖子行動應該是這個樣子的:

public function post(Request $request) 
{ 
    return response()->json($request->all()); 
} 

我檢查它和它的做工精細。但在textarea插入[Object object]因爲它JSON。您可以像這樣在您的Jquery腳本中添加JSON.stringify:

$(function(){ 
    $('#insert').on('click', function(e){ 
     e.preventDefault(); 
     var intrare = $('textarea#firsttextarea').val(); 
     $.ajax({ 
      type:'POST', 
      url: '/post', 
      data: {intrare: intrare}, 
      success: function(data){ 
       $('textarea#secondtextarea').val(JSON.stringify(data)); 
      } 

     }); 
    }); 

}); 
+0

肯定不會推薦禁用它。 – Win

+0

@Win是的,但如果它爲一些研究,那麼這種方式會更快。 ofc for production你應該使用csrf驗證 – Andrey