0
以下腳本將發送$_POST['id']=[1,2,3]
到服務器。使用jQuery將多個值發佈到服務器
相反,我希望將$_POST['id']=[[1,'extra1'],[2,'extra2'],[3,'extra3']]
發送到服務器,或發送$_POST['id']=[1,2,3]
和$_POST['extra']=['extra1','extra2','extra3']
到服務器。
我可以通過遍歷表來實現,但HTML是PHP生成的,而我想修改HTML以儘可能簡單地做到這一點。
這是如何最好地完成?
https://jsfiddle.net/5a8cLt08/2/
$('#go').click(function() {
var data = $('#mytable tbody input.cb:checked').serializeArray();
console.log('data', data);
$.post('ajax.php', data, function(json) {
console.log('json', json);
}, 'json');
});
<table id='mytable'>
<tbody>
<tr>
<td>
<input class="cb" type="checkbox" value="1" secondValue="extra1" name="id[]">
</td>
<td>bla1</td>
<td>
<input class="cb" type="checkbox" value="2" secondValue="extra2" name="id[]">
</td>
<td>bla2</td>
<td>
<input class="cb" type="checkbox" value="3" secondValue="extra3" name="id[]">
</td>
<td>bla3</td>
</tr>
</tbody>
</table>
<button id="go">Go</button>
是的,我想我可以這樣做,而且這樣做很容易。但是,它會導致發佈額外的數據,這是不必要的,因爲只需要與檢查值關聯的額外值。我想知道我是否可以使用'value = [1,'extra1']'這樣的東西,但不要指望我能。或者可能在每個輸入中加入一個'data'值,選擇匹配的'input.cb:checked',以及如何序列化'data'值? – user1032531
@ user1032531您可以在您的值中設置JSON編碼值,然後使用'json_decode'對其進行解碼,而不是使用隱藏字段。 – apokryfos
@是否有典型的'value'看起來像我在之前的評論中展示過的,還是會引用它作爲有效的HTML? – user1032531