php - jquery 序列化方法的多种形式不起作用

标签 php jquery html

我有多个表单,每个表单都已提交,但不是第一个表单。

我尝试了诸如 event.preventDefault();

之类的一切

我的代码:

<?php for($i=0;$i<=5;$i++){ ?>
<form id="form<?php echo $i; ?>>
<td><?php echo $i++ ?><td>
<td><input type="text" name="detention_unloading_charges"   value="<?php echo $history[$i]->name; ?>"></td>
<td><input type="text"  name="dtn_chrg_per_day" value="<?php echo $history[$i]->dtn_chrg_per_day; ?>"></td>
<td><input type="text"  name="dtn_chrg" value="<?php echo $history[$i]->dtn_chrg; ?>"></td>
<td>
<button class="btn btn-secondary" type="button" onclick="save_changes(<?php echo $i ?>);">Save Changes</button></td>
</form>
}

和jquery函数:

function save_changes(id)
{
    $.ajax({
        url: "History/update",
        type: "POST",
        data: $('#form'+id).serialize(),
        success: function(data) {
            // Success message
            console.log(data);
            if(data==1){
                $('.success_pop_up').addClass('show').removeClass('d-none');
            } else{
                $('.failure_pop_up').addClass('show').removeClass('d-none');;
            }
        }
   });
}

最佳答案

您在开始时通过 echo $i++ 将 $i 递增两次,除了 for 循环之外,它还会递增 $i ,因此循环仅运行三次,表单 id 为 form0 但相应的函数为 save_changes (1),如果该表单 ID 根本不存在,请尝试以下代码。

    <?php for($i=0;$i<=5;$i++){ ?>
    <form id="form<?php echo $i; ?>>
    <td><?php echo $i?><td>
    <td><input type="text" name="detention_unloading_charges"   value="<?php echo $history[$i]->name; ?>"></td>
    <td><input type="text"  name="dtn_chrg_per_day" value="<?php echo $history[$i]->dtn_chrg_per_day; ?>"></td>
    <td><input type="text"  name="dtn_chrg" value="<?php echo $history[$i]->dtn_chrg; ?>"></td>
    <td>
    <button class="btn btn-secondary" type="button" onclick="save_changes(<?php echo $i ?>);">Save Changes</button></td>
    </form>    
    <?php  } ;?>

尝试此代码并让我知道它是否有效。

关于php - jquery 序列化方法的多种形式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313754/

相关文章:

php - 如何在 Laravel 中通过请求 HTTP 发送多组数据输入?

php - Symfony3 : Fatal error: Class 'AppKernel' not found in .\bin\控制台

php - 我应该如何在 MySQL 数据库中存储 ftp 登录凭据?

javascript - 数据表:更改表的高度不起作用

javascript - 如何删除javascript中的特定元素

javascript - 在 jQuery 中从页面元素创建数组

php - 将从 mysql 数据库收集的 SESSION 变量发布到新页面

jquery - 如何在单独的 div 标签中淡出全屏多背景图像

javascript - 是否可以经常更改浏览器文档模式?

javascript - Bootstrap 日期时间选择器,单击图像时显示对话框