2012-07-26 37 views
0

我正在設置一個用戶可以更新數量的購物車。因爲我不知道aJAX是否立即執行,所以我正在使用刷新的購物車在完整的php中執行此操作。 (you can still se my post where I try to set it up with AJAX刷新表單而不通過表單驗證運行

問題是,在購物車下面有一個表單,當用戶改變數量(輸入)時,他必須點擊'刷新'或'重新計算',無論如何。

所以我的問題是我得到驗證過程運行,因爲重新計算就像一個提交按鈕(價格是在表單方法的開始時計算),因爲用戶修改了一個輸入,併爲所有的字段尚未填充,我得到了一個錯誤。

我該怎麼說「如果用戶點擊刷新,請不要將表單提交給驗證過程,只需考慮該輸入」?我不知道是否有可能在同一頁上有兩個分離的表單? (它們在彼此之內)

順便說一下,我使用codeIgniter。

我給我的表格的一部分,我需要聽

form_dropdown('quantity'.$product['title'],$options,$value[$product['title']],$data0);

時,我想更新數量,只有這一個。

<ul class="form"> 
    <li> 
     <h2>Your Information</h2> 
    </li> 
    <li> 
     <ul class="form" id="threeColumns"> 
      <li> 
       <?php 
       echo form_open('main/Form'); 

       echo form_label('First Name', 'firstname'); 
       echo ' :</br>'; 
       if (set_value('firstname')) { 
        $valuefirstname = set_value('firstname'); 
       } else { 
        $valuefirstname = $this->session->userdata('firstname'); 
       } 
       echo form_input('firstname', $valuefirstname); 
       echo form_error('firstname'); 

       echo '</li><li>'; 

       echo form_label('Last Name', 'lastname'); 
       echo ' :</br>'; 
       if (set_value('firstname')) { 
        $valuelastname = set_value('lastname'); 
       } else { 
        $valuelastname = $this->session->userdata('lastname'); 
       } 
       echo form_input('lastname', $valuelastname); 
       echo form_error('lastname'); 

       echo '</li><li>'; 

       echo form_label('Email', 'email'); 
       echo ' :</br>'; 
       if (set_value('firstname')) { 
        $valueemail = set_value('email'); 
       } else { 
        $valueemail = $this->session->userdata('email'); 
       } 
       echo form_input('email', $valueemail); 
       echo form_error('email'); 
       ?> 
       <div class="fError Right"> 
        <?php 
        if (ISSET($error) AND $error != NULL) 
         echo $error; 
        ?> 
       </div> 
      </li> 
     </ul> 
    </li> 

    <div class="break"> 
    </div> 

    <li id="Payment"> 
     <div id='Table'> 
      <table> 
       <tr> 
        <th id="top-left"> 
         Product 
        </th> 
        <th> 
         Color 
        </th> 
        <th> 
         Quantity 
        </th> 
        <th> 
         Price Per Product 
        </th> 
        <th id= "top-right"> 
         Total 
        </th> 
       </tr> 
       <?php foreach ($products as $product) { ?> 
        <tr class="line"> 
         <td> 
          <img id="tableImage" src="<?php echo base_url($product['image_url']) ?>" alt="product" width="121" /> 
         </td> 
         <td> 
          <?php echo $product['title'] ?> 
         </td> 
         <td> 
          <?php 
          $options = array(
           '0' => '0', 
           '1' => '1', 
           '2' => '2', 
           '3' => '3', 
           '4' => '4', 
           '5' => '5', 
           '6' => '6', 
           '7' => '7', 
          ); 

          if ($product['quantity'] == 0) { 
           $value[$product['title']] = set_value('quantity' . $product['title']); 
          } else { 
           $value[$product['title']] = $product['quantity']; 
          } 
          $data0 = 'class="quantSelect" value="' . $value[$product['title']] . '" id="quant' . $product['title'] . '"'; 

          echo form_dropdown('quantity' . $product['title'], $options, $value[$product['title']], $data0); 
          ?> 
         </td> 
         <td> 
          <?php echo $product['price'] ?> 
         </td> 
         <td id="<?php echo 'price' . $product['title'] ?>"> 
          $<?php echo $total[$product['title']] ?> 
         </td> 
        </tr> 
        <?php } ?> 

感謝

回答

0

一個簡單的方法是有兩個規則集的形式。一個是所有的領域和'需要'。另一種是相同的規則,但沒有「必要」

然後,如果沒有「必要」

如果提交,運行形式與所需的規則集驗證刷新,運行表單驗證。