我正在嘗試使用 ajax 即時(shí)保存輸入字段的值。我正在使用 Laravel 框架來(lái)制作我的應(yīng)用程序。下面是我用來(lái)創(chuàng)建字段的代碼。問(wèn)題是每個(gè)表行上的輸入字段名稱都是相同的,因此當(dāng)使用 ajax 提交表單時(shí),只有第一行的值被推送。有人可以指出我如何解決這個(gè)問(wèn)題的正確方向嗎?我應(yīng)該為輸入字段指定唯一的名稱嗎?如果是這樣,我如何在控制器中檢索這些值?@if($orsrg->aant_gelev = 1) <tr id="{{ $orderregel->regel }}"> <td>{{ $orsrg->artcode }}</td> <td>{{ $orsrg->oms45 }}</td> <td> <form class='addtagform' method='post'> <input type="hidden" name="_token" id="token" value="{{ csrf_token() }}"> <input type='hidden' name='ordernr[]' value='{{ $orkrg->ordernr }}'> <input type='hidden' name='regel[]' value='{{ $orsrg->regel }}'> <input class="form-control form-control-sm" type='text' id="tag" name="tag" class='form-control' maxlength='24' value="{{ $orderregel->tags()->pluck('tag')->first() }}"></form></td> </tr> @endif我使用的ajax / jquery如下(它在更改后1秒將值保存到數(shù)據(jù)庫(kù)):<script type="text/javascript">$(document).ready(function () { var timeoutId; $('form input, form textarea').on('input propertychange change', function () { console.log('Textarea Change'); clearTimeout(timeoutId); timeoutId = setTimeout(function () { saveToDB(); }, 1000); }); function saveToDB() { console.log('Saving to the db'); form = $('.addtagform'); var tag = $('input[name=tag]', this.form).val(); var ordernr = $('input[name=ordernr]', this.form).val(); var regel = $('input[name=regel]', this.form).val(); $.ajax({ url: "/warehouse/tag", headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, type: "POST", data: {tag: tag, ordernr: ordernr, regel: regel}, success: function (data) { var jqObj = jQuery(data); var d = new Date(); $('.form-status-holder').html('Saved! Last: ' + d.toLocaleTimeString()); }, }); }很感謝任何形式的幫助。提前致謝!
1 回答

至尊寶的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
滿足您的要求的一種更簡(jiǎn)單、更容易的方法是使用 jQuery 的serialize()
函數(shù) - 您在表單上調(diào)用它,它會(huì)自動(dòng)將所有表單數(shù)據(jù)轉(zhuǎn)換為發(fā)送到服務(wù)器所需的編碼格式。例如
data:?form.serialize()
- 1 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)
0/150
提交
取消