Как получить html табличных значений в основную программу - PullRequest
0 голосов
/ 24 февраля 2020

Пример будет лучше понять мой сценарий.

<select name="Country" >
<option value="0"> Japan <option>
<option value="1"> Koria <option>
</select>


<table name="expense">
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>80</td>
  </tr>
</table>

<select> Значение тега можно получить из основной программы, используя r.FormValue("Country") при отправке формы. В зависимости от выбранной опции он вернет 0 или 1.

Но как я могу получить значения таблицы?

Этот снимок экрана помогает объяснить ситуацию. enter image description here

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

Пожалуйста, обратитесь к пакету github.com/PuerkitoBio/goquery. Я использовал его, чтобы получить DOM с веб-страницы, а затем перебрать элементы, чтобы получить определенные значения c.

1 голос
/ 24 февраля 2020

Чтобы получить значения таблицы из представления формы:

Вам может потребоваться каким-то образом сделать их входными значениями:

 <td>
     <input type="text"  name="color_1" value="" />
 </td>

Не уверен, что цель этого: Входные значения могут быть доступным в параметре запроса.

0 голосов
/ 25 февраля 2020

Как подсказал @diyoda, вставил тег ввода в ячейки для получения данных из основной программы.

  //Inserting input tag inside table, to retrieve value from each row in main praogram(only for itmcode and qty)
  cell1.innerHTML = count;//SL.NO
  cell2.innerHTML = "<input type='text' name='itemCodeRow__" +  count + "' value='" + selected_itmcode + "'readonly>";
  cell3.innerHTML = sel.options[sel.selectedIndex].text;
  cell4.innerHTML = "<input type='text' name='itemQtyRow__" +  count + "' value='" + selected_qty + "'readonly>";

Ниже добавлен полный код (может быть полезно, чтобы кто-то узнал всю историю)

{{ define "Smentracker" }}
{{ template "Header" }}
<div id="div-common">
{{ template "Menu" }}
</div>
<form name="form_smen" method="POST" action="smentracker" onsubmit="return ensure_fields()">
<label id="lblDT" class="input-fields" >Date:</label>
<br><input type="date" id="issue_date" name="items_issueDt" class="input-fields" id='datePicker'><br>
<select id="selectSmen" name="selectSmen" class="input-fields">
<option value="0">Select Salesmen  </option>
  {{ range .Sm_Data }}
<option value="{{ .Id }}">{{ .Desc }} </option>
 {{ end }}
</select><br><br>
<p>
<label id="lblDT" class="input-fields" >Add items to list below :</label>
</p>
<select id="selectItem" name="selectItem" class="input-fields">
<option value="0">Select Item  </option>

  {{ range .Prd_Data }}
<option value="{{ .Id }}">{{ .Desc }} </option>
 {{ end }}
</select>

<input type="number" id="qty" placeholder="Enter Quantity">
<button type="button" onclick="addItemtoList()"> Add</button><br><br>

<table id="itemsTable" name="itemtble">
  <tr>
    <th>SL.No</th>
    <th>ItmCode</th>
    <th>ItemName</th>
    <th>Qty</th>
  </tr>
</table>

<br><button type="submit" > Save </button><br>
</form>
</body>

<script>
document.getElementById("issue_date").valueAsDate = new Date()//to Set current date in datepicker

//Add New row in table
function addItemtoList(){
  var count = document.getElementById("itemsTable").rows.length;
  var table = document.getElementById("itemsTable");
  var row = table.insertRow(count);
  var cell1 = row.insertCell(0)
  var cell2 = row.insertCell(1)
  var cell3 = row.insertCell(2)
  var cell4 = row.insertCell(3)


  //to get the text of selected option ( to get selected item)
  var sel = document.getElementById('selectItem');
  var selected_item = sel.options[sel.selectedIndex].text;
  var selected_qty = document.getElementById('qty').value;
  var selected_itmcode = document.getElementById('selectItem').value;


  //Inserting input tag inside table, to retrive value from each row in main praogram(only for itmcode and qty)
  cell1.innerHTML = count;//SL.NO
  cell2.innerHTML = "<input type='text' name='itemCodeRow__" +  count + "' value='" + selected_itmcode + "'readonly>";
  cell3.innerHTML = sel.options[sel.selectedIndex].text;
  cell4.innerHTML = "<input type='text' name='itemQtyRow__" +  count + "' value='" + selected_qty + "'readonly>";



function  ensure_fields(){
        return true;
}

}
</script>
{{ template "Footer" }}
{{ end }}

Ниже приведен фрагмент кода в основной программе для извлечения данных

for{ // picking data and adding to DB till the row ends

        iCodeInputName := fmt.Sprintf("%s%d","itemCodeRow__",rowCount)
        iQTYInputName := fmt.Sprintf("%s%d","itemQtyRow__",rowCount)
        iCode := r.FormValue(iCodeInputName)
        iQty := r.FormValue(iQTYInputName)
        issueDt := r.FormValue("items_issueDt")
        smen_id := r.FormValue("selectSmen")
        if iCode == ""{
                break
        }
        insForm, err := db.Prepare("INSERT INTO smen_trans(smen_id,trans_dt,prod_id,qty) VALUES (?,?,?,?)")
        if err != nil {
                panic(err.Error())
        }
        insForm.Exec(smen_id,issueDt,iCode,iQty)
        rowCount++;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...