javascript - 在 PHP 中使用序列化 jQuery 传递多个参数

标签 javascript php jquery ajax serialization

我在序列化表单方面遇到问题。我需要传递多行来创建发票,但它只传递第一行。

这是一个表格:

<form action="" id="generate_invoice" method="POST">
  <td><input type="number" class="form-control n_invoice" name="n_invoice[]"></td>
  <td><input type="date" class="form-control data" name="data[]"></td>
  <td><input type="text" class="form-control description" name="description[]"></td>
  <td><input type="number" class="form-control price" name="price[]" step=any></td>
  <td><input type="number" class="form-control vat" name="vat[]">
</form>

这是一个添加新行的函数:

function addrow_invoice() {
  var i = $('#invoiceTable tr').length;
  var tr = '<tr>'+
    '<td><input type="checkbox" class="case"/></td>'+
    '<td></td>'+
    '<td></td>'+
    '<td><input type="text" class="form-control description" name="description[]"></td>'+
    '<td><input type="number" class="form-control price" name="price[]"></td>'+
    '<td><input type="number" class="form-control vat" name="vat[]"></td>'+
    '</tr>';
  $('table#invoiceTable').append(tr);
  i++;
};

这是一个测试:

for($i = 0; $i<count($_POST['description']); $i++) 
{
  echo "{$_POST['description'][$i]}";
  echo "<br>";
}

最佳答案

问题是因为您的 HTML 无效。 form 需要包装 table 元素,而不是位于其中。由于 HTML 无效,form 的位置会被移动,以便它不会包装您的 input 元素,因此不会序列化任何内容。

您的 HTML 需要更改为:

<form action="" id="generate_invoice" method="POST">
  <table id="invoiceTable">  
    <tr>
      <td><input type="number" class="form-control n_invoice" name="n_invoice[]"></td>
      <td><input type="date" class="form-control data" name="data[]"></td>
      <td><input type="text" class="form-control description" name="description[]"></td>
      <td><input type="number" class="form-control price" name="price[]" step=any></td>
      <td><input type="number" class="form-control vat" name="vat[]">
    </tr>
    <!-- additional rows appended here... -->
  </table>
</form>

关于javascript - 在 PHP 中使用序列化 jQuery 传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46072588/

相关文章:

javascript - 如何使用 facebook/immutable-js 制作自定义不可变类型?

javascript - 在 Internet Explorer 中使用区域 map 的 Lightbox

javascript - d3 : graph looks good in firefox but is cut off in chrome

jquery - 当输入集中在切换的 div 内时如何修复不需要的切换

javascript - 您可以使用 jQuery 为当前的 css 值添加旋转吗?

javascript - 如何更改超链接的字体颜色?

php - PHP 与 ASP.NET 相比有哪些优势?

php - 关于php下归并排序的问题

java - 在 Tomcat 上配置 PHP 出现异常 : UnsatisfiedLinkError

javascript - 在一天中的特定时间显示 DIV(例如,在商店 "open hours"期间)