【发布时间】:2023-03-06 04:04:01
【问题描述】:
首先我有一个复选框列表
@foreach ($extras as $extra)
<span class="button-checkbox">
<button type="button" class="btn" value="{{ $extra->id }}" data-color="primary">
{{ $extra->name.' - $'.$extra->amount}}
</button>
<input type="checkbox" name="extras[]" id="extras" class="hidden" />
</span>
@endforeach
这些按钮充当复选框。后台有 JS 获取按钮值并将其添加到兄弟复选框值并将其标记为选中。我知道这是可行的,因为如果我运行$("[name='extras[]']").serializeArray(),我可以在控制台中看到extras[] 标记为选中并列出。
我有一个函数可以将表单数据发布到控制器服务器端,该控制器服务器端将对数据执行某些操作并发送回某些内容。
function updateTotals() {
var url = "/reservation/updateTotals";
//set hidden field that holds the selected property's name
//$('#property_name').val($('#properties').text().trim());
$.post(url, $("form").serializeArray())
.done(function(data) {
//console.log(data);
})
.fail(function() {
alert("Error updating totals.");
})
.always(function() {
//alert( "finished" );
});
}
我有一个链接到控制器的路由:
Route::post('reservation/updateTotals', 'ReservationController@updateTotals');
而现在我只是在使用 Controller 进行测试以获取我的数组数据:
public function updateTotals() {
//get property
$property = Property::findOrFail(Input::get('property_id'));
//get extras
return $extras = $_POST['extras'];
//get discount
$discount = Input::get('discount');
}
当我 return 只是 $_POST['extras'] 或 Input::get('extras') 时,我的回复一无所获。但是,如果我返回 $_POST 或 Input::all() 我会取回我所有的 **non-array* POST 数据。 extras 有一个字段,但它是空白的:,"extras":"",
我已经尝试将按钮全部删除,只使用复选框,仍然得到相同的结果。
我在这里缺少什么?我的问题可能是什么?
【问题讨论】:
标签: php jquery arrays laravel checkbox