0

我使用下面的代码片段来生成一些表单输入。

<tr id='$ticket->id' class='ticket-row'>
    <td>$ticket->ticket_no</td>
    <td><input type='text' name='c_name[]' /></td>
    <td><input type='text' name='next_of_kin[]' /></td>
    <td><input type='text' name='address[]' value='$ticket->address' /></td>
    <td><input type='text' name='seat_no[]' /></td>
    <td><input type='text' name='fare[]' value='$ticket->fare' /></td>
</tr> 

一些表单元素包含来自数据库的输入值。每个tr标签都包含该id行的记录。我的挑战是如何最好地在一行中检索表单值以及记录id,并在编辑值后更新单个记录(可能使用循环)。

我尝试使用ajax,但我卡在某个地方。以下是我尝试过的片段的一部分:

var tickets = $('.ticket-row');
    $.each(tickets, function(i, val) {
        // Retrieve the form elements in this row and send to the server
    });
});
4

1 回答 1

2

要更新完整表:

编辑:JSON-js添加到您的页面

HTML

<table>
    <tr id='$ticket->id' class='ticket-row'>
        <td><span id="no">$ticket->ticket_no</span></td>
        <td><input type='text' id='c_name' /></td>
        <td><input type='text' id='next_of_kin' /></td>
        <td><input type='text' id='address' value='$ticket->address' /></td>
        <td><input type='text' id='seat_no' /></td>
        <td><input type='text' id='fare' value='$ticket->fare' /></td>
    </tr>
</table>

JS

var tickets = [];

$('.ticket-row').each(function() {
    tickets.push({ id : $(this).attr('id'),
                  no : $(this).find('#no').text(),
                  c_name : $(this).find('#c_name').val(),
                  next_of_kin: $(this).find('#next_of_kin').val(),
                  address : $(this).find('#address').val(),
                  seat_no : $(this).find('#seat_no').val(),
                  fare : $(this).find('#fare').val() });
});

$.ajax({
    type : 'POST',
    url : '**URL_HERE**',
    data : JSON.stringify(tickets),
    dataType : 'json'
})
.success(function() {
    // TODO
})
.fail(function() {
    // TODO
});
于 2013-02-22T19:25:48.923 回答