我正在尝试使用 Xero 会计软件的 API (php) 创建发票。如果我使用以下代码(摘录),我可以毫无问题地创建发票并添加产品:
$lineitem1 = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineitem1
->setItemCode(MODEL-REF1)
->setQuantity(10)
->setTaxType(NONE);
$arr_lineitem = [];
array_push($arr_lineitem, $lineitem1);
$lineitem2 = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineitem2
->setItemCode(MODEL-REF2)
->setQuantity(20)
->setTaxType(NONE);
$arr_lineitem = [];
array_push($arr_lineitem, $lineitem2);
这没有任何问题,并将在发票上创建两个产品(MODEL-REF1 和 MODEL-REF2)及其相关的数量和税种。
当我尝试从上一页的表单中填充这些详细信息时,问题就开始了(因为每张发票上可能有 1 或 100 多种不同的产品)。该表单将传递具有唯一 id 的产品型号项目代码等(在下面的示例中由“X”显示自动递增 1),还将传递购买的产品线的总量。
例如,上述表格将是:
<input type="text" id="ItemCode**X**" name="ItemCode**X**" value="MODEL-REF1">
<input type="text" id="Quantity**X**" name="Quantity**X**" value="10">
<input type="text" id="TaxType**X**" name="TaxType**X**" value="NONE">
<input type="text" id="ItemCode**X**" name="ItemCode**X**" value="MODEL-REF2">
<input type="text" id="Quantity**X**" name="Quantity**X**" value="20">
<input type="text" id="TaxType**X**" name="TaxType**X**" value="NONE">
<input type="text" id="TotalProductsInLoop" name="TotalProductsInLoop" value="2">
因此,我认为我可以使用以下代码在脚本 API 端循环遍历这些值(然后将产品提交给 xero):
for ($i=1; $i<=$TotalProductsInLoop; $i++) {
$ItemCode = $_POST['ItemCode'.$i];
$Quantity = $_POST['Quantity'.$i];
$TaxType = $_POST['TaxType'.$i];
$lineitem . $i = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineitem . $i
->setItemCode($ItemCode)
->setQuantity($Quantity)
->setTaxType($TaxType);
$arr_lineitem = [];
array_push($arr_lineitem, $lineitem . $i);
}
但是,这只是将循环中的最后一个产品(例如 MODEL-REF2)而不是其他产品的第一个产品提交到发票。
任何人都可以看到我在这里缺少什么吗?
我假设这与在数组中使用计数循环有关?