如何在Laravel中将Jquery值/变量传递给PHP
我正在创建一个机票预订系统,我想在数据库中插入数据。像往常一样,我使用HTML表单,所有的数据都进入数据库,除了座位号。这并没有给我一个错误。 对于座位号,我使用Jquery,我想将Jquery值插入数据库。我不知道这是否可能。(座位号=项目) 我怎样才能解决这个问题 这是我的如何在Laravel中将Jquery值/变量传递给PHP,php,jquery,database,laravel,Php,Jquery,Database,Laravel,我正在创建一个机票预订系统,我想在数据库中插入数据。像往常一样,我使用HTML表单,所有的数据都进入数据库,除了座位号。这并没有给我一个错误。 对于座位号,我使用Jquery,我想将Jquery值插入数据库。我不知道这是否可能。(座位号=项目) 我怎样才能解决这个问题 这是我的Seat.blade.php #holder{ height:300px; width:800px; background-color:#F5F5F5; border:1px solid #A4A4
Seat.blade.php
#holder{
height:300px;
width:800px;
background-color:#F5F5F5;
border:1px solid #A4A4A4;
}
#place {
position:relative;
margin-top:33px;
margin-left:35px;
}
#place a{
font-size:80%;
}
#place li
{
list-style: none outside none;
position: absolute;
}
#place li:hover
{
background-color:yellow;
}
#place .seat{
background:url("img/Other/Available Seat.png") no-repeat scroll 0 0 transparent;
height:30px;
width:45px;
display:block;
}
#place .selectedSeat
{
background-image:url("img/Other/Disabled Seat.png");
}
#place .selectingSeat
{
background-image:url("img/Other/Booked Seat.png");
}
#place .row-3, #place .row-4{
margin-top:10px;
}
#seatDescription li{
verticle-align:middle;
list-style: none outside none;
padding-left:35px;
height:35px;
float:left;
font-family: Times New Roman;
font-size:120%;
color:#353c47;
}
</style>
public function seatsinsert(Request $request) {
$date = $request->input('date');
$st = $request->input('st');
$item = $request->input('items');
//$item = item;
$user = new Seats();
$user->date = $date;
$user->st = $st;
$user->item = $item;
$this->validate($request, [
'date' => 'required'
]);
$user->save();
$request->session()->flash('Msg', 'Successfully Inserted !!');
return redirect('Seats');
}
这是我的路线
Route::post('seatsinsert', [
'uses' => 'SeatsController@seatsinsert',
'as' => 'seatsinsert'
]);
您可能需要更改此设置:
var item = $(this).attr('title').var();
对此:
var item = $(this).attr('title').var();
您可能需要更改此设置:
var item = $(this).attr('title').var();
对此:
var item = $(this).attr('title').var();
把所有的表格都放在一块不是更好吗。。添加隐藏的输入字段(或任何其他类型)。。在值中记录座椅编号,并从中提取数据
在Laravel端:$request->input('seatNumbers')
把所有的表格都放在一块不是更好吗。。添加隐藏的输入字段(或任何其他类型)。。在值中记录座椅编号,并从中提取数据
在Laravel端:$request->input('seatNumbers')
为了提高效率,将
$.ajax
移到循环之外,只提交一次。收集项目
作为项目
值的数组,然后发布
一次
$('#btnShowNew').click(function (e) {
e.preventDefault();
var items = [];
$.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
items.push($(this).attr('title'));
});
$.ajax({
type: "post",
url: "{{ route('seatsinsert') }}",
data: {
_token: "{{ csrf_token() }}",
items: items,
date: $('input[name=date]').val(),
st: $('select[name=st]').val()
}, success: function(data){
console.log(data.message); // "Success"
}
});
});
编辑:由于
$(“#btnShowNows”)
是一个为了提高效率,将$.ajax
移动到循环之外,只提交一次。收集项目
作为项目
值的数组,然后发布
一次
$('#btnShowNew').click(function (e) {
e.preventDefault();
var items = [];
$.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
items.push($(this).attr('title'));
});
$.ajax({
type: "post",
url: "{{ route('seatsinsert') }}",
data: {
_token: "{{ csrf_token() }}",
items: items,
date: $('input[name=date]').val(),
st: $('select[name=st]').val()
}, success: function(data){
console.log(data.message); // "Success"
}
});
});
编辑:既然$(“#btnShowNows”)
是一个,如果您在控制台上登录项目,它会显示什么?我看到您使用了var()。。。你是说瓦尔()?旁注<代码>$。如果有足够的数据,循环中的post
可能会非常低效。最好是循环、收集数据并将单个POST
作为数组发送。@RăducanuIonuţ-Nothing。但是,当我使用str.push(item)时;和警报(str.join(','),它给我选定的座位号。是的,它是val()。在使用post方法时,您不提供标记。@TimLewis-我不知道。我该怎么做?如果您在显示的项目上进行控制台登录?我看到您使用了var()。。。你是说瓦尔()?旁注<代码>$。如果有足够的数据,循环中的post
可能会非常低效。最好是循环、收集数据并将单个POST
作为数组发送。@RăducanuIonuţ-Nothing。但是,当我使用str.push(item)时;和警报(str.join(','),它给我选定的座位号。是的,它是val()。在使用post方法时,您不提供标记。@TimLewis-我不知道。我怎么做?我可能错了,但我认为你甚至不需要这里的.val()
<代码>$(此).attr(“标题”)
应该自己工作。attr()
jQuery函数在提供单个参数时返回一个字符串:指定属性名的值。因此,在本例中,.val()
将应用于字符串并导致抛出错误。顺便说一句,.val只与表单输入相关。您好,Mohsin,如果您能描述一下为什么您的答案解决了作者的问题,这将为以后找到此解决方案的人增加更多价值。我可能错了,但我认为您甚至不需要这里的.val()
<代码>$(此).attr(“标题”)
应该自己工作。attr()
jQuery函数在提供单个参数时返回一个字符串:指定属性名的值。因此,在本例中,.val()
将应用于字符串并导致抛出错误。顺便说一句,.val仅与表单输入相关。您好,Mohsin,如果您能描述一下为什么您的答案解决了作者的问题,这将为以后找到此解决方案的人增加更多价值。当我使用此BTN SHOW func时,它禁用了我的座椅结构。我该如何解决这个问题??“禁用我的座椅结构”这是什么意思?这个结构。我想从该结构将选定的座位号插入数据库。您只是无法单击它们吗?如果是这样,请检查您是否有任何控制台错误(在任何当前浏览器中为F12,导航到控制台
选项卡)。它提供了以下信息:加载资源失败:服务器响应状态为404(未找到)-bootstrap-theme.min.css。我有19个错误。当我使用这个BTN显示功能时,它禁用了我的座椅结构。我该如何解决这个问题??“禁用我的座椅结构”这是什么意思?这个结构。我想从该结构将选定的座位号插入数据库。您只是无法单击它们吗?如果是这样,请检查您是否有任何控制台错误(在任何当前浏览器中为F12,导航到控制台
选项卡)。它提供了以下信息:加载资源失败:服务器响应状态为404(未找到)-bootstrap-theme.min.css。我有19个错误。
$this->validate($request, [
'date' => 'required'
]);
foreach($request->input("items") AS $item){
$user = new Seats();
$user->date = $date;
$user->st = $st;
$user->item = $item;
$user->save();
}
data: {
_token: "{{ csrf_field() }}",
items: items,
date: $('input[name=date]').val(),
st: $('select[name=st]').val()
}
return response()->json(["message" => "Success"], 200); // Customize as needed
$.ajax({
type: "post",
url: "{{ route('seatsinsert') }}",
data: {
_token: "{{ csrf_field() }}",
items: items,
date: $('input[name=date]').val(),
st: $('select[name=st]').val()
}, success: function(data){
console.log(data.message); // "Success"
}
});