簡體   English   中英

僅針對更改的行從表中獲取靜態數據和選定數據

[英]Get static data & selected data from table only for changed rows

我正在嘗試同時做多件事,並且似乎無法讓所有事情一起工作。 我有一個充滿選擇框的表格,這些選擇框從 php foreach 循環動態填充。 用戶進行更改並單擊按鈕,我試圖遍歷表並抓取已更改的行並獲取選定的數據值。 這是我的表的樣子:

<table id="myTable>
 <tbody>
   <tr>
     <th>ColumnHeader1</th>
     <th>ColumnHeader2</th>
     <th>ColumnHeader3</th>
   </tr>
   <tr>
      <td name="columnOneData">123456</td>
      <td name="columnTwoData">
         <select>
            <option value="1">Data1</option>
            <option value="2">Data2</option>
            <option value="3">Data3</option>
         </select>
      </td>
      <td name="columnThreeData>
         <select>
            <option value="1">Data1</option>
            <option value="2">Data2</option>
            <option value="3">Data3</option>
         </select>
      </td>
   </tr>
   <tr>
      <td name="columnOneData">987654</td>
      <td name="columnTwoData">
         <select>
            <option value="1">Data1</option>
            <option value="2">Data2</option>
            <option value="3">Data3</option>
         </select>
      </td>
      <td name="columnThreeData>
         <select>
            <option value="1">Data1</option>
            <option value="2">Data2</option>
            <option value="3">Data3</option>
         </select>
      </td>
   </tr>
 </tbody>
</table>
<button id="saveBtn"></button>

我有一個函數設置為將類“changedRow”添加到任何已更改的 tr 中。 通過使用它,我只能獲得更改的行,但似乎我只能獲得選定的值(但我缺少 columnOneData)或者我可以獲得所有值(但包括所有選項,而不僅僅是選擇的選項)但有無法將其縮小到我需要的范圍。 最后,我需要將 columnOneData 和 columnTwoData 和 columnThreeData 的選定值發送回我的 php 代碼以更新數據庫。 (例如,如果用戶對兩行都進行了選擇)

 "columnOneData":123456, "columnTwoData":1, "columnThreeData":2
 "columnOneData":987654, "columnTwoData":2, "columnThreeData":3 

任何有關解決此問題的最佳方法的建議將不勝感激!!

首先,我建議您提供不起作用的js代碼,以便其他人更容易回答您,因為他們可以修改您的代碼。

無論如何,請嘗試以下代碼:

var all_data = [];
$('#myTable tr.changedRow').each(function() {
    all_data.push({
        columnOneData: $(this).find('td[name="columnOneData"]').text(),
        columnTwoData: $(this).find('td[name="columnTwoData"] select').val(),
        columnThreeData: $(this).find('td[name="columnThreeData"] select').val()
    });
});

jsfiddle 中的工作示例

首先,您的姓名和 ID 屬性缺少一些引號。

<table id="myTable>
...
<td name="columnThreeData>

...應該...

<table id="myTable">
...
<td name="columnThreeData">

(我會使用類或 ID 而不是名稱。)

至於獲取值,我不能 100% 確定您遇到的問題是什么,但這是我第一次嘗試做我認為您要求做的事情:

小提琴: https : //jsfiddle.net/c3nm0wvq/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM