Ajax在循环php时发布数据

时间:2015-04-29 08:59:28

标签: javascript php jquery ajax

抱歉,我是初学者。 我有一些关于来自while循环PHP的ajax post数据的问题。 这是我的代码。

假设在while循环之后我有5个记录5个按钮,每个记录有不同的帖子数据,但是ajax只会发送第一个记录数据,无论我点击这5个记录中的哪个按钮,ajax都会发送第一个记录数据的相同数据

但是,如果我使用$(this).val(),ajax将在每条记录中发送正确的数据。

请帮助。这么多。

在PHP中。

<?php while($rs = mysql_fetch_array($qr)) { ?>
        <td width="150">
             <input type="text" name="studentid" class="studentid" value="<?=$rs['studentid']?>"/>
      </td>
    <td width="100">
        <select name="ssize" class="ssize">
            <option value="">ไซต์</option>
            <option <?php if($rs['ssize'] == 'S') { ?> selected="selected" <?php } ?> value="S">S</option>
            <option <?php if($rs['ssize'] == 'M') { ?> selected="selected" <?php } ?> value="M">M</option>
        </select>
    </td>
    <button value="<?=$rs['id']?>" class="printBill btn btn-primary">
            <i class="glyphicon glyphicon-duplicate"> </i>
            พิมพ์ใบเสร็จ
    </button>
<?php } ?>

在JS。

$(".printBill").click(function () {
            $.ajax({
            url: "admin_search_save.php",
            data: {
                id:$(this).val(),
                studentid:$(".studentid").val(),
                ssize:$(".ssize").val(),
            },
            success: function (data) {
            }
        });
    });

1 个答案:

答案 0 :(得分:0)

您需要使用event delegation来动态添加内容。

$(document).on('click','.printBill',function () {

        // capture input and select value by traversing up into parent(tr),
        // then find element [input, select]
        // this traversing method depend on your table structure
        var studID    = $(this).closest('tr').find('input[name=studentid]').val(),
            ssizeData = $(this).closest('tr').find('select[name=ssize]').val();

        $.ajax({
        url: "admin_search_save.php",
        data: {
            id        : $(this).val(),
            studentid : studID,
            ssize     : ssizeData,
        },
        success: function (data) {
        }
    });
  });