【发布时间】:2023-03-03 23:27:01
【问题描述】:
使用 Laravel 5.7 和 Ajax 插入数据并显示在以下刀片文件中,
<table border="0">
<th colspan="6">Members</th>
<tr>
<td>Id</td>
<td>Name</td>
<td>Email</td>
<td>Address</td>
</tr>
@foreach($member as $value)
<tr>
<td>{{$value->id}}</td>
<td>{{$value->name}}</td>
<td>{{$value->age}}</td>
<td>{{$value->email}}</td>
<td>{{$value->address}}</td>
</tr>
@endforeach
</table>
<!--insert data-->
<table border="0">
<th colspan="2">Insert</th>
<tr>
<td>Name:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Address:</td>
<td><input type="text" name="address"></td>
</tr>
<tr>
<td colspan="2"><button type="submit" id="insert">Insert</button></td>
</tr>
</table>
{{ csrf_field() }}
$('#insert').click(function(){
$.ajax({
type:'post',
url:'insertdata',
data:{
'_token':$('input[name:_token').val(),
'name':$('input[name:name').val(),
'age':$('input[name:age').val(),
'email':$('input[name:email').val(),
'address':$('input[name:address').val(),
},
success:function(data){
window.location.reload();
},
});
});
我的 HomeController 是这样的,
public function index()
{
$member = membersmodel::all();
return view('home.index')->with('member',$member);
}
public function insertdata(Request $request)
{
$member = New membersmodel();
$member->name = $request->name;
$member->age = $request->age;
$member->email = $request->email;
$member->address = $request->address;
$member->save();
return response()->json($member);
}
路线是,
Route::get('/','HomeController@index');
Route::post('insertdata','HomeController@insertdata');
但是当我在插入表中插入数据并单击插入按钮时,什么都没有发生。不保存数据或显示。不,发生任何错误。如何解决此问题?
【问题讨论】:
-
有些错误是你看不到的。它永远不会“空白”。尝试调试它。在您的控制器中尝试
print_r($request->all());并查看您是否真正访问了您的控制器,console.log();您的数据以查看错误是否在视图中等等。总是会发生一些事情。 -
AJAX 代码在哪里?会发生什么?
-
@NicoHaase 请查看我的更新答案有 ajax 部分
-
@pr1nc3 如何在我的代码中使用
print_r($request->all());和console.log();? -
那是你的问题 :) ,jQuery 没有定义。因此,请检查您是否正在加载它,并确保此页面中的脚本是在 jQuery 之后加载的。