2015-11-26 5 views
0

Я использую cakephp2.2.7. Я уже сделал много форм, поддерживая стандарт cakephp. Здесь у меня есть несколько форм, основанных на итерации цикла. Вот мой код:Форма неаккуратной формы не отправляется

<style type="text/css"> 
     .alert { 
      padding: 6px; 
      margin-bottom: 5px; 
      border: 1px solid transparent; 
      border-radius: 4px; 
      text-align: center; 
     } 
     input#OrderProductPieces { 
      display: inline; 
      float: l; 
      width: 50px; 
     } 
     th,td{ 
      text-align: center; 
     } 

    </style> 

    <div class="page-content-wrapper"> 
     <div class="page-content"> 
      <!-- BEGIN PAGE HEADER--> 
      <h3 class="page-title"> 
       Edit this order <small>Edit can't be performed when it delivered</small> 
      </h3> 

      <!-- END PAGE HEADER--> 
      <!-- BEGIN PAGE CONTENT--> 
      <div class="row"> 
       <div class="col-md-12"> 
        <!-- BEGIN EXAMPLE TABLE PORTLET--> 
        <div class="portlet box blue"> 
         <div class="portlet-title"> 
          <div class="caption"> 
           <i class="fa fa-phone"></i>Edit Order 
          </div> 
          <?php echo $this->Session->flash(); ?> 
          <div class="tools"> 
           <a href="javascript:;" class="reload"> 
           </a> 
          </div> 
         </div> 
         <div class="portlet-body"> 



          <table class="table table-striped table-hover table-bordered" id="sample_editable_1"> 
           <thead> 
            <tr> 
             <th>Product Info </th> 
             <th>Customer Info</th> 
             <th > Action</th> 
            </tr> 
           </thead> 
           <tbody> 
            <?php 
            $order = $datas['orders']; 
            $customer = $datas['customers']; 
            $order_products = $datas['order_products']; 
            $product = $datas['products']; 
            $psettings = $datas['psettings']; 
            // pr($datas); 
            // exit; 
            foreach ($datas['products'] as $index => $product): 

             echo $this->Form->create('OrderProduct', array(
              'inputDefaults' => array(
               'label' => false, 
               'div' => false 
              ), 

              'class' => 'form-horizontal', 
              'novalidate' => 'novalidate', 

               ) 
             ); 
             ?> 
             <tr > 
              <td> 
               <img src="<?php echo $this->webroot . 'productImages/small/' . $psettings[$index]['small_img'] ?>" width="37" height="34"> 
               <span class="cart-content-count">x <?php 
                echo $this->Form->input(
                  'pieces', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $order_products[$index]['pieces'] 
                  ) 
                ); 
                ?> 
               </span> 

               <span> 
                <?php echo $product['name'] . ' By ' . $product['writer']; ?> 
               </span> 
              </td> 

              <?php 
              if ($index == 0): 
               ?> 
               <td> 
                <?php 
                echo $this->Form->input(
                  'Customer.name', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.city', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $datas['city']['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.location', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $datas['location']['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.mobile', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['mobile'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.alt_mobile', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['alt_mobile'] 
                  ) 
                ); 
                ?> 
               </td> 

               <?php 
              else: 
               ?> 
               <td> <strong>Same as Above</strong> </td> 

              <?php 
              endif; 
              ?> 

              <?php 
              echo $this->Form->input(
                'Customer.id', array(
               'type' => 'hidden', 
               'value' => $customer['id'] 
                ) 
              ); 
              ?> 
              <?php 
              echo $this->Form->input(
                'Customer.id', array(
               'type' => 'hidden', 
               'value' => $customer['id'] 
                ) 
              ); 
              ?> 
              <?php 
              echo $this->Form->input(
                'OrderProduct.id', array(
               'type' => 'hidden', 
               'value' => $datas['order_products'][$index]['id'] 
                ) 
              ); 
              ?> 

              <td > 
               <div class="controls center"> 
                <div class="form-actions"> 
                 <div class="row"> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Save Changes', array('class' => 'btn green', 'type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Delete', array('class' => 'btn btn-danger', 'type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Add New', array('class' => 'btn green', 'type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                 </div> 
                </div> 

               </div> 
              </td> 
             </tr> 

             <?php 
             echo $this->Form->end(); 
            endforeach; 
            ?> 

           </tbody> 
          </table> 
         </div> 
        </div> 
        <!-- END EXAMPLE TABLE PORTLET--> 
       </div> 
      </div> 
      <!-- END PAGE CONTENT --> 
     </div> 
    </div> 
    <!-- END CONTENT --> 

Но когда я нажимаю на кнопку «Сохранить изменения», удалите или добавьте новую форму кнопки, которая не отправляется. Я могу пропустить очень основную проблему, но не найден сам. Любая помощь будет оценена.

+0

Откуда вы не знаете, форма не отправлена? Как вы проверяете представленные данные в своем контроллере? Также: вы уверены, что используете cakephp 3? Кажется более синтаксисом cakephp 2 – arilia

+0

Извините версия 2.9. Когда я нажимаю кнопку на других, страница перезагружается. Но в этом случае это не загрузка. –

+0

Есть CakePHP 2.9? https://github.com/cakephp/cakephp/releases – drmonkeyninja

ответ

1

вы должны указать каждой кнопке отправки атрибут имени.

Попробуйте этот код ниже:

<style type="text/css"> 
     .alert { 
      padding: 6px; 
      margin-bottom: 5px; 
      border: 1px solid transparent; 
      border-radius: 4px; 
      text-align: center; 
     } 
     input#OrderProductPieces { 
      display: inline; 
      float: l; 
      width: 50px; 
     } 
     th,td{ 
      text-align: center; 
     } 

    </style> 

    <div class="page-content-wrapper"> 
     <div class="page-content"> 
      <!-- BEGIN PAGE HEADER--> 
      <h3 class="page-title"> 
       Edit this order <small>Edit can't be performed when it delivered</small> 
      </h3> 

      <!-- END PAGE HEADER--> 
      <!-- BEGIN PAGE CONTENT--> 
      <div class="row"> 
       <div class="col-md-12"> 
        <!-- BEGIN EXAMPLE TABLE PORTLET--> 
        <div class="portlet box blue"> 
         <div class="portlet-title"> 
          <div class="caption"> 
           <i class="fa fa-phone"></i>Edit Order 
          </div> 
          <?php echo $this->Session->flash(); ?> 
          <div class="tools"> 
           <a href="javascript:;" class="reload"> 
           </a> 
          </div> 
         </div> 
         <div class="portlet-body"> 



          <table class="table table-striped table-hover table-bordered" id="sample_editable_1"> 
           <thead> 
            <tr> 
             <th>Product Info </th> 
             <th>Customer Info</th> 
             <th > Action</th> 
            </tr> 
           </thead> 
           <tbody> 
            <?php 
            $order = $datas['orders']; 
            $customer = $datas['customers']; 
            $order_products = $datas['order_products']; 
            $product = $datas['products']; 
            $psettings = $datas['psettings']; 
            // pr($datas); 
            // exit; 
            foreach ($datas['products'] as $index => $product): 

             echo $this->Form->create('OrderProduct', array(
              'inputDefaults' => array(
               'label' => false, 
               'div' => false 
              ), 

              'class' => 'form-horizontal', 
              'novalidate' => 'novalidate', 

               ) 
             ); 
             ?> 
             <tr > 
              <td> 
               <img src="<?php echo $this->webroot . 'productImages/small/' . $psettings[$index]['small_img'] ?>" width="37" height="34"> 
               <span class="cart-content-count">x <?php 
                echo $this->Form->input(
                  'pieces', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $order_products[$index]['pieces'] 
                  ) 
                ); 
                ?> 
               </span> 

               <span> 
                <?php echo $product['name'] . ' By ' . $product['writer']; ?> 
               </span> 
              </td> 

              <?php 
              if ($index == 0): 
               ?> 
               <td> 
                <?php 
                echo $this->Form->input(
                  'Customer.name', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.city', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $datas['city']['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.location', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $datas['location']['name'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.mobile', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['mobile'] 
                  ) 
                ); 
                ?> 
                <?php 
                echo $this->Form->input(
                  'Customer.alt_mobile', array(
                 'class' => 'form-control ', 
                 'type' => 'text', 
                 'value' => $customer['alt_mobile'] 
                  ) 
                ); 
                ?> 
               </td> 

               <?php 
              else: 
               ?> 
               <td> <strong>Same as Above</strong> </td> 

              <?php 
              endif; 
              ?> 

              <?php 
              echo $this->Form->input(
                'Customer.id', array(
               'type' => 'hidden', 
               'value' => $customer['id'] 
                ) 
              ); 
              ?> 
              <?php 
              echo $this->Form->input(
                'Customer.id', array(
               'type' => 'hidden', 
               'value' => $customer['id'] 
                ) 
              ); 
              ?> 
              <?php 
              echo $this->Form->input(
                'OrderProduct.id', array(
               'type' => 'hidden', 
               'value' => $datas['order_products'][$index]['id'] 
                ) 
              ); 
              ?> 

              <td > 
               <div class="controls center"> 
                <div class="form-actions"> 
                 <div class="row"> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Save Changes', array('class' => 'btn green', 'name'=>'save', 'type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Delete', array('class' => 'btn btn-danger', 'name'=>'delete','type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                  <div class="col-md-4"> 
                   <?php 
                   echo $this->Form->button(
                     'Add New', array('class' => 'btn green','name'=>'add','type' => 'submit') 
                   ); 
                   ?> 
                  </div> 
                 </div> 
                </div> 

               </div> 
              </td> 
             </tr> 

             <?php 
             echo $this->Form->end(); 
            endforeach; 
            ?> 

           </tbody> 
          </table> 
         </div> 
        </div> 
        <!-- END EXAMPLE TABLE PORTLET--> 
       </div> 
      </div> 
      <!-- END PAGE CONTENT --> 
     </div> 
    </div> 
    <!-- END CONTENT --> 

время на контроллере можно проверить, какая кнопка нажата, как это:

if(isset($this->request->data['OrderProduct']['save'])){ 

    } 
if(isset($this->request->data['OrderProduct']['delete'])){ 

    } 
if(isset($this->request->data['OrderProduct']['add'])){ 

    } 

Надежда эта помощь.

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