我有一个带有4个输入和+
按钮的表单,如果按下,通过jQuery我再次添加相同的字段,这样我就可以立即进行多次插入。仅供参考,这是字段。
<fieldset class="dyn-product">
<legend>Dettagli prodotto</legend>
<div class="form-row rhird p1 left">
<label for="barcode" class="label">Codice</label>
<input type="text" class="input incoming-barcode" name="barcode[]" id="barcode" placeholder="Codice">
<button type="button" class="generate-barcode">Crea codice a barre</button>
<input type="hidden" name="has-barcode[]" class="has-barcode" value="1">
</div>
<div class="form-row third p1 left">
<label for="name" class="label">Nome</label>
<input type="text" class="input" name="name[]" id="name" placeholder="Nome">
</div>
<div class="form-row third left">
<label for="quantity" class="label">Quantità</label>
<input type="text" class="input" name="quantity[]" id="quantity" placeholder="Quantità">
</div>
<div class="form-row full left">
<label for="description" class="label">Descrizione</label>
<textarea name="description[]" class="input full small-textarea" id="description" cols="30" rows="10" placeholder="Descrizione"></textarea>
</div>
<div class="clearfix"></div>
</fieldset>
按下+
按钮后,我会生成相同的<fieldset>
。
当我想插入这些数据时,问题在于php。
这是代码
$nr = count(Input::post('barcode'));
for ( $i = 0; $i < $nr; $i++ ) {
$productData = array(
'barcode' => Input::post('barcode', $i),
'name' => Input::post('name', $i),
'quantity' => Input::post('quantity', $i),
'descr' => Input::post('description', $i),
'has_code' => Input::post('has-barcode', $i)
);
$insertProduct = $dbh->prepare(" INSERT INTO products(name, description, quantity, barcode, has_barcode) VALUES(:name, :descr, :quantity, :barcode, :has_code) ");
$insertProduct->execute($productData);
}
这很好用,问题是,如果我插入2个产品,只有第一个插入。如果我插入3个产品,只有前2个插入,所以一个。最后一个不插入。我没有错误,如果我删除插入部分代码和print_r()
$productData
数组,我有所有产品,但插入最后一个产品时没有。
我尝试修改for
循环,但这不是问题。
如果有人能帮助我,我真的很感激。
谢谢。