【发布时间】:2021-10-10 12:33:39
【问题描述】:
我想向我的控制器发送一个 id 数组,并在“whereIn”子句中使用该控制器。但它不起作用。我的代码是:
从视图:我正在使用 ajax 调用来获取 package_id[] 的值(您可以在下面的表格中看到)。值在数组中。
<form action="" class="price-form" method="post">
@csrf
<input type="text" value="" name="package_id[]" id="package_id">
<input type="text" value="50" name="member_number" id="member_number">
<button type="submit">Submit</button>
</form>
来自控制器:product_id(数组形式)被拖到控制器中。
public function get_package_price(Request $request) {
if($request->ajax()){
$member_number = $request->get('member_number');
$package_ids = $request->get('package_id');
if($member_number != '')
{
$get_price = DB::table('package_plans')->whereIn('package_id',$package_ids)
->where('user_limit', '>=', $member_number)->first();
$get_plan_id = $get_price->id;
$get_package_price = $get_price->price_in_usd;
$user_limit = $get_price->user_limit;
}
$data = array(
'get_package_price' => $get_package_price,
'get_plan_id' => $get_plan_id,
'user_limit' => $user_limit
);
echo json_encode($data);
}
}
脚本代码:
<script>
$(document).ready(function(){
$("#member_number").keyup(function(event){
event.preventDefault();
var member_number = $('#member_number').val();
var package_id = $('#package_id').val();
fetch_package_title(package_id, member_number);
function fetch_package_title(package_id = '', member_number = ''){
var currency_val = $('#currency_value').val();
$.ajax({
url : 'get_package_price',
method : 'GET',
data : {package_id:package_id, member_number:member_number},
dataType : 'json',
success : function(data){
console.log(data.get_package_price);
var final_price = data.get_package_price;
var price_per_member =( data.get_package_price/data.user_limit )
*member_number;
$('#package_price').html(data.get_package_price);
$('#cost_per_seat').html(price_per_member);
$('#cost_per_head').val(price_per_member);
$('#get_plan_id').val(data.get_plan_id);
$('#total_price').val(price_per_member);
}
});
}
});
});
});
</script>
【问题讨论】:
-
您从 1 个 id 为
#package_id的元素中获取 package_id 请注意,您可以使用var data = $('form').serialize();从表单中获取完整数据并在您的 ajax 调用中使用它。如果它只有一个值,我真的不明白为什么你会希望它作为一个数组发布......