AJAX表单仅执行一次(第一次输入)

时间:2018-09-20 11:15:31

标签: php jquery ajax

我通过<ng-container *ngIf="column=='actions'; else noSort"> <mat-header-cell *matHeaderCellDef mat-sort-header /> </ng-container> <ng-template #noSort> <mat-header-cell *matHeaderCellDef /> </ng-template> 循环循环了sql select行的输出。每行都有自己的形式。只有第一种形式有效。其他表格只是刷新页面,并显示所有结果。在表单上提交 通过AJAX update.php函数被执行。它仅在第一个输入字段起作用,不知道如何触发其他人。

PHP

while

JS

echo " <div class=\"col-6 flex-vcenter-items fs-1\">
    <form id='form".$row["id"]."' action='' method='POST'>
         <input id='id' name='potnik' value='".$row["id"]."' type='hidden' /> 
         <input id='cas' class=\"form-control cas".$row["id"]." fancy-border\" type=\"text\" name=\"posodobljeni_cas\"/>
         <input class='btn btn-outline-primary' id='submit' type='submit' value='Nastavi uro'>
     <label id=\"info\"></label>
 </form>
</div>";

1 个答案:

答案 0 :(得分:3)

基本的HTML规则是每个元素都有unique id,因为您正在循环创建forms,所以我将使用classes而不是id's

echo " <div class=\"col-6 flex-vcenter-items fs-1\">
    <form class='form' data-id='".$row["id"]."' action='' method='POST'>
         <input  name='potnik' value='".$row["id"]."' type='hidden' /> 
         <input  class=\"form-control cas".$row["id"]." fancy-border\" type=\"text\" name=\"posodobljeni_cas\"/>
         <input class='btn btn-outline-primary' type='submit' value='Nastavi uro'>
        <label class=\"info\"></label>
    </form>
</div>";

现在我将根据类更改jQuery代码:-

$( document ).ready(function() {
    $('input[type=submit]').on('click', function (e) {
        e.preventDefault();
        var obj = $(this);
        let idrow = obj.closest("form").data('id'); // i have used data-id in forms
        let updaterow = "update.php?id=";
        $.ajax({
            type: 'post',
            url: updaterow + idrow,
            data: obj.closest("form").serialize(),
            success: function () {
                //change these code also based on classes
                console.log('ura posodobljena');
                console.log("Prejšnji čas",$("#id-ura"+idrow).text());
                $("#id-ura"+idrow).replaceWith( $(".cas"+idrow).val() );
                console.log("Novi čas",$(".cas"+idrow).val());
            }
        });
    });
});