【发布时间】:2015-03-09 14:53:06
【问题描述】:
我有以下代码:
<form id="sendObj">
<table class="no-border hover list">
<tbody class="no-border-y">';
while($pendingTransfers = mysql_fetch_assoc($getPending)){
$id = $pendingTransfers['id'];
echo '
<tr class="items">
<td style="width: 10%;"><span class="label label-primary">'.$counter++.'</span></td>
<td class="text-left"><p>'.$pendingTransfers['NumarInventar'].'</p></td>
<td class="text-left"><p><strong>'.$pendingTransfers['DenumireArticol'].'</strong></p></td>
<input type="hidden" name="id" value="'.$pendingTransfers['id'].'" />
<td class="text-center"><input type="hidden" name="depID" class="getDep" data-placeholder="Selecteaza destinatie" /> <i style="color:red" title="Sterge din lista" onclick="deleteLista('.$pendingTransfers['id'].');" class="text-right fa fa-times-circle fa-lg"></i></td>
</tr>';}
echo '
</tbody>
</table>
</form>
<div class="text-center"><button id="BtnSendObj" type="submit" class="btn btn-primary btn-success"><i class="fa fa-check color-inverse fa-lg"></i> Finish transfers</button></div>
上面的代码为每条记录带来了插入的 DB id,并且在上表中的每一行上都有一个选择选项,用户可以从中选择一些值。当用户完成时,他将按下“完成传输”按钮,所有输入都必须序列化。问题是我有多个具有相同名称的输入,我无法将它们全部分组,因为我可以稍后在 PHP 中使用它们。例如,我可以在每个输入的每一行 1 上有 5 行。所以结果会 id=1 DepId=3456 , id =2 DepId = 5432 以此类推。
$('#BtnSendObj').on('click', function(event) {
event.preventDefault();
var data;
var a = $('#sendObj').serializeArray();
$.each(a, function () {
var depID = $('input[name=depDestinatie]').serializeArray();
var id = $('input[name=id]').serializeArray();
data =[{"id":id, "depID":depID}];
});
//The above will output something like :
// [Object]0: Object
//depId: Array[4]0: Object1: Object2: Object3: Object...
// id: Array[4]0: Object1: Object2: Object3: Object
// Like this i cannot handle them togerther in PHP.
// I think it should look like an array of objects so like this i would //be able to acces them easly , i think that both id's should be in same object //, but this is were i dont know how to proceed.
$.ajax({
url: 'subpages/data/transferObjects.php',
data: {data: data},
type: 'POST',
success:function(data, textStatus, jqXHR){
console.log('AJAX SUCCESS');
console.log(data);
},
complete : function(data, textStatus, jqXHR){
}
});
});
我在这里处理 ajax 帖子。
我想要实现的是将数据发送到一个 php 文件,在该文件中我将使用表单中的值更新 DB。
php 文件如下所示:
//some connection
if(isset($_POST['data']))
{
$updateObjects = mysql_query("UPDATE transactions SET IDDepartamentDestinatie = '$_POST['depID'] WHERE id = '{$_POST['id']}'");
}
但是像这样它只会更新表单中的最后一条记录,因为我不会遍历所有输入。
如果有人知道我该怎么做,我已经尝试了所有关于 serializeArray 或 serialize 的示例,但对我没有用。
【问题讨论】:
标签: javascript php jquery mysql