2013-04-23 75 views
1

我有如下表:Jquery/PHP基於加入的[輸入值和列名稱]在輸入中插入值。 jQuery的1.9.1或PHP

<table class="authors-list" border=0 id="ordertable"> 
    <tr> 
    <td ><input type="text" id="product_1" name="product_1" class="rounded"/></td> 
    <td ><input type="text" size='5' id="qty_1" name="qty_1" class="rounded"/></td> 
    <td class="tdcheckbox"><input type="checkbox" id="h09_1" name="h09_1" class="rounded"/> 
     <input type="text" id="line_1_09" name="line_1_09" value=""></td> 
    <td class="tdcheckbox"><input type="checkbox" id="h12_1" name="h12_1" class="rounded"/> 
     <input type="text" id="line_1_12" name="line_1_12" value=""></td> 
    <td class="tdcheckbox"><input type="checkbox" id="h15_1" name="h15_1" class="rounded"/> 
     <input type="text" id="line_1_15" name="line_1_15" value=""></td> 
    <td><input type="text" name="cubespercheck_1" id="cubespercheck_1" value="0" size=5></td> 
    </tr> 
</table> 

,你可以在這裏看到小提琴: http://jsfiddle.net/3Befc/7/

我的主要目標是能夠給每個複選框後作爲一個單獨的產品。產品領域被填充產品系列。例子是38114CR。複選框代表產品的長度。 1.8米長的38114CR的代碼是3811418CR,其中18是長度(1.8)

最後,我希望能夠將每個選中的複選框作爲其獨特的產品代碼發佈。因此,如果產品38114CR的值爲0.9,則值爲3811409CR。

我的最終目標是要插入以下到數據庫: (這是因爲每小提琴期望的結果)

**Product   Cubes** 

3011409CR   7 
3011412CR   7 
2011512EX   3 
2011515EX   3 
5050009PT   2 
5050012PT   2 
5050015PT   2 

我能想到的唯一的辦法是遍歷表,並在有一個複選框,結合名稱和長度,但即使這也有一些挑戰。

我怎樣才能得到上述錶行插入到數據庫中?所以水平行到垂直記錄插入?

請記住,用戶可以輸入他們想要的任何產品代碼。

回答

0
$(function() { 
    $('#continue').on('click', function() { 
     createcodes(); 
    }); 
}); 


function createcodes() { 

    //run through each row 
    $('.authors-list tr').each(function (i, row) { 

     // reference all the stuff you need first 
     var $row = $(row), 
      $line = $row.find('input[name^=line]'), 
      $family = $row.find('input[name*="family"]'), 
      $size = $row.find('input[name^=size]'), 
      $grade = $row.find('input[name*="grade"]'); 

     $line.val(
      $family.val() + ' ' + $size.val() + ', ' + $grade.val() 
     ); 

    }); 
} 
1

您可以使用隱藏字段。在每一行添加一個隱藏字段,女巫將包含「真實價值」。

然後添加一個點擊/更改/無論您想要複選框的事件,並且如果用戶可以鍵入代碼鍵入輸入字段。該事件應該以您命名的方式發送ID的「行」(如_2,_2等 - >)的結尾。

所有的事件都應該調用相同的函數,巫婆會將值連接到隱藏的字段。

像這樣的東西 - 就是一個例子複製粘貼將無法正常工作):

 function makeName(line) { 
     // Loop through checkboxes on that line and make the name 
     if (<checkbox is checked>) 
       document.getElementById('hiddenField' + line).value = document.getElementById('product' + line).value + <checkboxFromLoop> // Etc., etc. 
    } 

在提交時只發送只隱藏字段。它們將包含正確的值。

+0

感謝Zozo。這是有道理的。問題在於,較早的jquery腳本根據數據庫中的某些邏輯檢查或取消選中複選框。我怎麼才能讓它觸發並遍歷每個表格行和單元格來執行此操作?這個複選框不一定會點擊嗎?再次感謝。 – Smudger 2013-04-23 10:34:58

+0

您可以修改腳本觸發一個事件(我認爲最簡單的方法,我不完全知道您在那裏有什麼,所以我可能是錯的),或者您可以嘗試一個「onchange」事件的複選框。我不保證onchange,但它可能工作。我會自己嘗試一下,但現在不能:) – zozo 2013-04-23 10:59:04

+0

感謝Zozo,任何一個更準確腳本的機會?讓自己瘋狂與這一個。謝謝。 – Smudger 2013-04-23 12:58:56