如何使用ajax将表中的所有数据插入数据库

Posted

技术标签:

【中文标题】如何使用ajax将表中的所有数据插入数据库【英文标题】:how to insert all data in table to database using ajax 【发布时间】:2021-05-10 16:22:54 【问题描述】:

以下是我的代码以及我目前所做的。

点击#orderSave按钮后??

<table class="table table-sm table-striped table-hover" id="tbltrs">
    <thead>
        <tr>
            <th>Name</th>
            <th>Price</th>
            <th>Qty</th>
        </tr>
    </thead>
    <tbody id="tbodydata"></tbody>
</table>

<button type="button" id="orderSave" class="btn btn-sm btn-secondary">Process</button>

$("#code").bind('模糊按键',function(event) event.preventDefault(); if (event.keyCode === 13 || event.type == '模糊') var vals = $('#code').val(); $.ajax( 类型:'POST', url: 'check.php', 缓存: false, dataType:"json", data:code: vals,成功:函数(数据)如果(数据['ok']> 0) 变量数量 = 1; var elems = $('#tbltrs td').filter(function() return $.trim($(this).text()) === data['name']; ); 如果(elems.length) var qty = parseInt(elems.parent('tr').find('#qty').val()) + 1; elems.parent('tr').find('#qty').val(qty); 别的 var html = ''; html += ''; html += ''+数据['产品']+''; html += ''+数据['价格']+''; html += ''; $('#tbodydata').prepend(html); 其他 alert('none'); $('#code').val('').focus(); , 错误:函数(错误)警报(“错误”+JSON.stringify(错误)); ); );

$('#orderSave').click(function() 
$.ajax(
type: 'POST',
url: 'orders.php',
cache: false,
data:............,
success: function(data) 
printWindow = window.open("", "", "height=1, width=1");
printWindow.document.write(data);
printWindow.focus();
printWindow.print();
printWindow.close();
,
error:function(err)alert("error"+JSON.stringify(err)); 
);
);

【问题讨论】:

【参考方案1】:

需要序列化表单并使用提交事件 我们使用e.preventDefault() 不提交

你确实需要 NAME 属性

另外我建议在追加/前置数据时不要使用 ID

您忘记了使用 document.write 的 document.close

最后,当您使用模板文字时,html 更具可读性

$('#tbodydata').prepend(`<tr>
<td class="d-none"><input type="text" name="id" id="id" value="$data['id']"></td>
<td class="col" name="product">$data(product)</td>
<td class="col" name="price">$data(price)</td>
<td class="col"><input type="text" name="qty" id="qty" value="$qty"></td></tr>`);

$("#yourForm").on("submit",function(e) 
  e.preventDefault()
  const data = $(this).serialize();
  $.ajax(
    type: 'POST',
    url: 'orders.php',
    cache: false,
    data: data,
    success: function(data) 
      printWindow = window.open("", "", "height=1, width=1");
      printWindow.document.write(data);
      printWindow.document.close();
      printWindow.focus();
      printWindow.print();
      printWindow.close();
    ,
    error: function(err) 
      alert("error" + JSON.stringify(err));
    
  );
);

【讨论】:

点击提交后,我只是从输入值中获取id和数量(此数据显示警报:id=2&qty%5B%5D=1&id=1&qty%5B%5D=1),如何获取产品名称和价格 抱歉,您需要 NAME 属性 - 请参阅更新。如果这仍然不起作用,请更新您的问题并使用相关 HTML 显示 minimal reproducible example 我添加了 NAME 属性但没有更改,我只得到了 id 和 qty。我仍然对如何输入mysql数据库感到困惑。如果#tbodydata 很多产品

以上是关于如何使用ajax将表中的所有数据插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将表中的每一行与所有行进行比较?

如何通过 fullcalendar 使用 AJAX 将引导模式输入插入到 SQL 表中

如何将表中的数据用作 SQL 中另一个命令的值?

如何将表中的所有td对齐在同一行中

如何将表的行从一个数据库插入另一个数据库(使用两个PDO)

在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。