如何使用Laravel+Jquery Ajax从文本区域到文本区域获取值?



如何使用 laravel 和 jquery ajax 将值从一个文本区域获取到另一个文本区域。 到目前为止,我有这个文件。 路线:

Route::post('/post', 'PostController@post');

控制器:

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>

当我按下按钮时,没有任何反应。

第一个问题可能出在CSRF验证中。如果是这样,您可以禁用它或添加{{ csrf_token() }}. 然后,您的发布操作应如下所示:

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

我检查了一下,它工作正常。 但在文本区域中插入[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));
}
});
});
});

试试这个,你不会在控制器方法中返回响应。

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);
}
});
});
});

最新更新