2017-01-23 5 views
0

enter image description here Я пытаюсь вставить несколько текстовых полей с двумя именами. Во всех этих texboxes у меня есть имена элементов [] и qty []. Я попытался установить петлю foreach, но добавляет больше значений, чем ожидалось. Проблема заключается в $ _POST ['qty']. Я могу выбрать и добавить из элементов [], но я не могу добавить целочисленное значение qty!Как вставить несколько текстовых полей с двумя разными именами?

<div class="col-md-12 diff"> 
        <div class="col-md-4"> 
         <p>Select Item</p> 
         <input style="color:black;" type="text" class="form-control items" name="items[]" placeholder="Search..."> 
        <div class="side"></div> 
        </div> 
        <div class="col-md-2"> 
         <p>QTY</p> 
         <input id="pats_input" class="form-control pats_tb" type="text" name="qty[]" placeholder="NO:"> 
        <div class="side"></div> 
        </div> 
       </div> 
       <div class="col-md-12 diff"> 
        <div class="col-md-4"> 
         <p>Select Item</p> 
         <input style="color:black;" type="text" class="form-control items" name="items[]" placeholder="Search..."> 
        <div class="side"></div> 
        </div> 
        <div class="col-md-2"> 
         <p>QTY</p> 
         <input id="pats_input" class="form-control pats_tb" type="text" name="qty[]" placeholder="NO:"> 
        <div class="side"></div> 
        </div> 
       </div> 


function issueToEmployee(){ 
      global $conn; 
      if(isset($_POST['pats']) && $_POST['pats'] !="" && isset($_POST['items']) && $_POST['items'] !="" && isset($_POST['qty'])){ 
       $perstat = new getPerstat(); 
       //get employee pats 
       $perstat->getPats($_POST['pats']); 
       $stock = new StockTable(); 
       $qty = $_POST['qty']; 
       foreach($_POST['items'] as $item){ 
        foreach($qty as $q){ 
         if(!empty($item) && !empty($q)){ 
          $stock->getItemByName($item); 
         $sql = $conn->prepare("INSERT INTO issues (empid, itemid) VALUES('$perstat->id','$stock->itemid')"); 
         $sql->execute(); 
         } 
        } 

       } 

       return true; 

      }else{ 
       return false; 
      } 

ответ

0

Я думаю, что вы пытаетесь указать элементы на Qty как это:

$items = $_POST['items']; 
$qty = $_POST['qty']; 
foreach($items as $i => $item) 
{ 
if(!empty($item) && (isset($qty[$i]) && !empty($qty[$i]))) 
{ 
    $stock->getItemByName($item); 
    $sql = $conn->prepare("INSERT INTO issues (empid,itemid) VALUES('$perstat->id','$stock->itemid')"); 
    $sql->execute(); 
    } 

} 

Поскольку товары являются соответствует их Количество (поправьте меня, если я ошибаюсь)

+0

Да, $ items = $ _POST ['items'], поскольку имя входа - это элементы [], a nd $ qty = $ _ POST ['qty'], input qty []. – MaxPower

+0

Я отредактировал код, надеюсь, он может помочь – cjatstackoverflow

0

Я нашел, как добавить выше значения из нескольких полей ввода элементов [] и qty [],

for($i = 0; $i < 8 ; $i++){ 
         //$id = $_POST['id'][$i]; 
        $description = $_POST['items'][$i]; 
         $qty = $_POST['qty'][$i]; 
         $date = $_POST['date']; 
         if(!empty($qty)){ 
         $stock->getItemByName($description); 
         $sql = $conn->prepare("INSERT INTO issues (empid, itemid, qty, date) VALUES('$perstat->id','$stock->itemid','$qty','$date')"); 
          $sql->execute(); 

         } 

       } 
Смежные вопросы