2015-06-12 3 views
0

У меня в моем представлении 4 выбирается с тем же именем - wrappingType []. Они рассчитаны на 4 разных размера. Я попытался, но я не мог выполнить цикл обновления для обновления данных в базе данных. Я хочу, когда пользователь выбирает из этих 4 выбирает - эти значения обновляются в базе данных в 4 разных строках - для 4 разных размеров (XL, L, M, S). Я не знаю, как сделать это для этих 4 размеров - они вводятся. Он смотрит таким образом:. http://prntscr.com/7g7o49Не удается выполнить запрос на обновление

Я хочу, когда пользователь выбирает опцию из каждого из 4 выпадающие, их значения должны быть обновлены, где это eggsize является (XL, L, M, S). Как сделать этот цикл - foreach, для? И как получить значение размера яйца - я сделал эти вводные текстовые поля для этой цели, но я согласен. :) Вот мое мнение:

<?php 
 
foreach($items as $item){ 
 
    if($item['eggSize'] == 'XL'){ 
 
     $size_wrappingType = $item['wrappingType']; 
 
     $size_quantity = $item['quantity']; 
 
     
 
         
 
<?php 
 
    } 
 
} 
 
<select name = 'wrappingType[]' > 
 
    <option value="<?= '0' ?>" 
 
    <?php echo $size_wrappingType == '0' ? 'selected="selected"' : 
 
     '' ?>><?php echo '0' ; ?></option> 
 
    <option value="<?= '4' ?>" 
 
     <?php echo $size_wrappingType == '4' ? 'selected="selected"' : 
 
    '' ?>><?php echo '4' ; ?></option> 
 
<input type="text" name ="eggsize[]" value ="XL"> 
 
<?php 
 
foreach($items as $item){ 
 
    if($item['eggSize'] == 'L'){ 
 
     $size_wrappingType = $item['wrappingType']; 
 
     $size_quantity = $item['quantity']; 
 
     
 
         
 
<?php 
 
    } 
 
} 
 
<select name = 'wrappingType[]' > 
 
    <option value="<?= '0' ?>" 
 
    <?php echo $size_wrappingType == '0' ? 'selected="selected"' : 
 
     '' ?>><?php echo '0' ; ?></option> 
 
    <option value="<?= '4' ?>" 
 
     <?php echo $size_wrappingType == '4' ? 'selected="selected"' : 
 
    '' ?>><?php echo '4' ; ?></option> 
 
</select> 
 
<input type="text" name ="eggsize[]" value ="L"> 
 

 
//And these selects are 4 - for sizes - XL, L, M, S

Моя модель:

<?php 
 
public function update_document($document,$order_id){ 
 
    if($this->input->post('eggsize')) { 
 
     foreach($this->input->post('eggsize') as $size) { 
 
    if($this->input->post('wrappingType')) { 
 
      foreach($this->input->post('wrappingType') as $wrappingType) { 
 
    $data = array(
 
    'wrappingType' =>$wrappingType, 
 
    ); 
 

 
       $this->db->where('idOrder', $order_id); 
 
       $this->db->where('eggSize', $size); 
 
       $this->db->update('orderitems', $data); 
 
      } 
 
     } 
 
    } 
 
    }

+0

Просьба уточнить, сколько вы выберите (выпадающих), введите текстовые поля в свою форму. Из кода не ясно, и вопрос неоднозначен. – Jayesh

+0

У меня есть 4 выпадающих меню и 4 входа. С этими 4 входами я попытался получить размер яиц - если они XL, L, S или M. Потому что, на мой взгляд, я показываю XL, следующий L, M, S. Я должен показать данные для эти 4 размера яйца и когда пользователь обновляет WrappingType от выбора, его следует изменить в базе данных этой wrappingType, где этот размер яйца. :) –

ответ

1

Я думаю, вам нужно всего лишь один цикл, цикл по каждый wrappingType ввод, а затем получить соответствующий eggsize и используйте его в своем запросе на обновление.

public function update_document($document,$order_id) { 
    $eggSizeInputs = array(); 
    if($this->input->post('eggsize')) { 
     $eggSizeInputs = $this->input->post('eggsize'); 
    } 

    $eggSizeIndex = 0; 

    if($this->input->post('wrappingType')) { 
     foreach($this->input->post('wrappingType') as $wrappingType) { 
      $data = array(
       'wrappingType' =>$wrappingType 
      ); 

      $eggSize = $eggSizeInputs[eggSizeIndex++]; 


      $this->db->where('idOrder', $order_id); 
      $this->db->where('eggSize', $eggSize); 
      $this->db->update('orderitems', $data); 
     } 
    } 
} 
+0

Большое вам спасибо! Работает! Вы сделали мой день! :) –

+0

ха-ха. Надеюсь, правильный размер и тип яйца пойдут пользователю! лол. – Jayesh

+0

Да. Я должен очистить свою логику, а не иметь более одного ряда, чтобы быть с одним и тем же orderId и яиц :) –

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