簡體   English   中英

jQuery函數用於查找表行中的哪個按鈕被單擊

[英]jQuery function to find which button in table row is clicked

我一直試圖找到解決方案很長一段時間,非常感謝任何幫助。

我有一個表是通過php sql查詢生成的,每一行旁邊是兩個按鈕Buy&Sell當用戶點擊任一按鈕時它會填充一個對話框中的訂單表單

我有一個函數,它作用於jQuery中的click事件,但它讀取表中第一行的第一個字段。

這是我的功能

$('.buy').click(function(){
if($('#buying').dialog('isOpen')) alert('Buy Box Already open');
else { 
   $(".buycommodity").val($(".commodity_name").val()+"
                 "+$(".commodity_code").val());
      $("#buyprice").val($(".commodity_price").val());
      $("#buyqty").val($(".commodity_volume").val());


      $('#buying').dialog('open'); 
    }}
    );

問題是,如何在表單中讀取和填充正確的字段? 如何讓jQuery知道哪一個按鈕,哪一行被點擊? 所有類型按鈕都具有相同的類別,即買入或賣出

這是表格的一些HTML源代碼

<div id="exchange">
<form>
<table border="1" cellspacing="5" cellpadding="5">
<tr>
    <th>Commodity</th>
    <th>Code</th>
    <th>Current Price</th>
    <th>Past Price</th>
    <th>Change</th>
    <th>Volume</th>
        </tr>
        <tr valign='top'>
<td align=left>
   <input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10>
</td>
<td align=left>
   <input type="text" name="commoditycode" value=1121 readonly="readonly" id="commoditycode" size=6>
</td>
<td align=absmiddle>
   <input type="text" name="currentprice" value=100 readonly="readonly" id="currentprice" size=4>
</td>
<td align=absmiddle>
   <input align=absmiddle type="text" name="pastprice" value=80 readonly="readonly" id="pasrprice" size=4>
</td>
<td align="absmiddle"><font size="3" color="blue"><em>&#x25B2;</em></font></td>
<td align=left><input type="text" name="commodityvolume" value=88000 readonly="readonly" id="commodityvolume" size=7>
</td>
   <input type=hidden id=commodity_id name=commodity_id value=1>
   <input type=hidden class=commodity_name name=commodity_name value=Basmati>
   <input type=hidden class=commodity_code name=commodity_code value=1121>
   <input type=hidden class=commodity_volume name=commodity_volume value=88000>
   <input type=hidden class=commodity_price name=commodity_price value=100>
<td>
   <input class=buy type=button name=orderbutton value=Buy>
</td>
<td>
   <input class=sell type=button name=orderbutton value=Sell>
</td>
</tr>
</form>
<tr valign='top'>
   <td align=left>
      <input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10>
   </td>
   <td align=left>
      <input type="text" name="commoditycode" value=386 readonly="readonly" id="commoditycode" size=6>
  </td>
  <td align=absmiddle>
      <input type="text" name="currentprice" value=90 readonly="readonly" id="currentprice" size=4>
  </td>
  <td align=absmiddle><input align=absmiddle type="text" name="pastprice" value=100 readonly="readonly" id="pasrprice" size=4>
  </td>
  <td align="absmiddle"><font size="3" color="red"><em>&#x25BC;</em></font></td>
  <td align=left><input type="text" name="commodityvolume" value=44000 readonly="readonly" id="commodityvolume" size=7>
  </td><input type=hidden id=commodity_id name=commodity_id value=2>
   <input type=hidden class=commodity_name name=commodity_name value=Basmati>
   <input type=hidden class=commodity_code name=commodity_code value=386>
   <input type=hidden class=commodity_volume name=commodity_volume value=44000>
   <input type=hidden class=commodity_price name=commodity_price value=90><td>
   <input class=buy type=button name=orderbutton value=Buy></td>
                         <td><input class=sell type=button name=orderbutton value=Sell></td></tr
   </form>
 <tr valign='top'>
   <td align=left>
     <input type="text" name="commodityname" value=Basmati readonly="readonly" id="commodityname" size=10></td>
     <td align=left><input type="text" name="commoditycode" value=385 readonly="readonly" id="commoditycode" size=6></td>
    <td align=absmiddle><input type="text" name="currentprice" value=75 readonly="readonly" id="currentprice" size=4>
    </td>
    <td align=absmiddle><input align=absmiddle type="text" name="pastprice" value=88 readonly="readonly" id="pasrprice" size=4></td>
    <td align="absmiddle"><font size="3" color="red"><em>&#x25BC;</em></font></td>
    <td align=left>
      <input type="text" name="commodityvolume" value=24000 readonly="readonly" id="commodityvolume" size=7></td>
      <input type=hidden id=commodity_id name=commodity_id value=3>
      <input type=hidden class=commodity_name name=commodity_name value=Basmati>
      <input type=hidden class=commodity_code name=commodity_code value=385>
      <input type=hidden class=commodity_volume name=commodity_volume value=24000>
      <input type=hidden class=commodity_price name=commodity_price value=75><td>
      <input class=buy type=button name=orderbutton value=Buy></td>
                         <td><input class=sell type=button name=orderbutton value=Sell></td></tr>
      </form>
      <tr valign='top'><td align=left>
      <input type="text" name="commodityname" value=Ierro readonly="readonly" id="commodityname" size=10></td><td align=left>
      <input type="text" name="commoditycode" value=6 readonly="readonly" id="commoditycode" size=6></td><td align=absmiddle>
      <input type="text" name="currentprice" value=33 readonly="readonly" id="currentprice" size=4></td><td align=absmiddle>
      <input align=absmiddle type="text" name="pastprice" value=39 readonly="readonly" id="pasrprice" size=4></td><td align="absmiddle"><font size="3" color="red"><em>&#x25BC;</em></font>
    </td><td align=left>
      <input type="text" name="commodityvolume" value=124000 readonly="readonly" id="commodityvolume" size=7></td>
      <input type=hidden id=commodity_id name=commodity_id value=4>
      <input type=hidden class=commodity_name name=commodity_name value=Ierro>
      <input type=hidden class=commodity_code name=commodity_code value=6>
      <input type=hidden class=commodity_volume name=commodity_volume value=124000>
      <input type=hidden class=commodity_price name=commodity_price value=33><td>
      <input class=buy type=button name=orderbutton value=Buy></td>
      <td><input class=sell type=button name=orderbutton value=Sell></td></tr></form>
<tr valign='top'><td align=left>
      <input type="text" name="commodityname" value=Ierro readonly="readonly" id="commodityname" size=10>
  </td>
     <td align=left>
      <input type="text" name="commoditycode" value=9 readonly="readonly" id="commoditycode" size=6></td><td align=absmiddle>
      <input type="text" name="currentprice" value=79 readonly="readonly" id="currentprice" size=4></td><td align=absmiddle>
      <input align=absmiddle type="text" name="pastprice" value=60 readonly="readonly" id="pasrprice" size=4></td><td align="absmiddle"><font size="3" color="blue"><em>&#x25B2;</em></font></td><td align=left>
      <input type="text" name="commodityvolume" value=24000 readonly="readonly" id="commodityvolume" size=7></td>
      <input type=hidden id=commodity_id name=commodity_id value=5>
      <input type=hidden class=commodity_name name=commodity_name value=Ierro>
      <input type=hidden class=commodity_code name=commodity_code value=9>
      <input type=hidden class=commodity_volume name=commodity_volume value=24000>
      <input type=hidden class=commodity_price name=commodity_price value=79><td>
      <input class=buy type=button name=orderbutton value=Buy></td>
      <td><input class=sell type=button name=orderbutton value=Sell></td></tr></form></table
      </div>

您可以使用html5數據屬性來標記按鈕。 在下面的示例中,我給出了每個按鈕相關產品的ID,但您可以根據需要添加任意數量的其他數據屬性。 還有一個示例如何獲取單擊按鈕的行號。

<!DOCTYPE html>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>
    </head>
    <body>
        <table>
            <tr>
                <td><button class="buy" data-product-id="1" >button 1</button></td>
                <td><button class="buy" data-product-id="2" >button 2</button></td>
            </tr>
            <tr>
                <td><button class="buy" data-product-id="3" >button 3</button></td>
                <td><button class="buy" data-product-id="4" >button 4</button></td>
            </tr>
        </table>

        <script>
            $('.buy').click(function(){             
                var prod_id = $(this).data('productId')
                alert(prod_id);
                var row_number = $(this).closest("tr")[0].rowIndex;
                alert("row number: "+row_number);
            });
        </script>
    </body>
</html>

我希望這可以幫助你:

$('.buy').click(function() {
 var trRef=$(this).parent().parent(); //double parent() to get reference of TR, that holds the button in action
 var commodity_name = $(trRef).find('.commodity_name').val();
 var commodity_code = $(trRef).find('.commodity_code').val();
 var commodity_price = $(trRef).find('.commodity_price').val();
 var commodity_volume = $(trRef).find('.commodity_volume').val();

 $(".buycommodity").val(commodity_name+" "+commodity_code);
  $("#buyprice").val(commodity_price);
  $("#buyqty").val(commodity_volume);
});

追加/添加一個<div>單擊行按鈕時在表格行內標記jquery / php</div><div id="text_translate"><p> 我有一個帶有文件夾路徑的表格和每個表格行內的按鈕。 當在一行中單擊按鈕時,路徑會發送到一系列 php 文件(ajax.php、ajax2.php、ajax)。 ajax3.php 完成后,pdf 報告被創建,pdf_report.php 顯示報告。</p><p> <strong>問題</strong>:我找不到在單擊按鈕的行內顯示 pdf 報告的方法。 當我單擊“運行”時,pdf 報告會顯示在所有行上。</p><p> 我的代碼如下:</p><p> <strong>搜索.php</strong></p><pre> &lt;?php... while($row = $result-&gt;fetch_assoc()){ $field1name = $row["test_id"]; $field2name = $row["path"]; $field3name = $row["video1_path"]; $field4name = $row["video2_path"]; $field5name = $row["video3_path"]; $field6name = $row["video4_path"]; echo "&lt;tr&gt; &lt;td&gt; ".$field1name." &lt;/td&gt; &lt;td&gt; ".$field2name." &lt;/td&gt; &lt;td&gt; ".$field3name." &lt;/td&gt; &lt;td&gt; ".$field4name." &lt;/td&gt; &lt;td&gt; ".$field5name." &lt;/td&gt; &lt;td&gt; ".$field6name." &lt;/td&gt; &lt;td&gt;&lt;div&gt; &lt;button class='edit' id='". $row['test_id']. "'&gt;Run&lt;/button&gt; &lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div class= 'result' id='". $row['test_id']. "'&gt; &lt;p&gt;&lt;/p&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;"; } }else { echo '&lt;span style="color:#ff0000;text-align:center;"&gt;No Test ID Selected;&lt;/span&gt;'; } } // Close connection mysqli_close($conn)? :&gt; &lt;/table&gt; &lt;/div&gt;&lt;br&gt; &lt;div style="overflow-x;auto."&gt; &lt;table id=test_data&gt; &lt;tr&gt; &lt;th&gt;Progress&lt;/th&gt; &lt;th&gt;Progress Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;div&gt;&lt;progress id='progBar' value='0' max='100'&gt;&lt;/progress&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div&gt;&lt;p id='progress-text'&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;,--Uses jquery to run 3 scripts and displays it in a progress bar--&gt; &lt;script&gt; $(document).on('click', ';edit'. function(){ //set cookie value to 'path' var fcookie='mycookie'; var test_id = $(this).attr('id'). if(test_id) { var path = $(this):closest('tr').find("td;nth-child(2)").text(); } document.cookie='fcookie='+path: //Start of 1st script $.ajax({ url, "ajax:php", type:"POST". success; function(data) { //alert("File 1 Completed") $("#progress-text").text("Executing file 1"); $('#progBar').val(25): //Start of 2nd script $.ajax({ url, "ajax2:php", type:"POST". success; function(data2) { //alert("File 2 Completed") $("#progress-text").text("Executing file 2"); $('#progBar').val(50): //Start of 3rd script $.ajax({ url, "ajax3:php", type:"POST". success; function(data3) { //alert("File 2 Completed") $("#progress-text").text("Complete"); $('#progBar').val(100). $(this):closest("tr").find("td.nth-child(8)");load("pdf_report;php"); } }) } }) } }) return false; //}); }); &lt;/script&gt;</pre><p> <strong>pdf_report.php</strong></p><pre> ... &lt;style&gt;.report { color: black; border: 2px solid #008CBA; border-radius: 8px; } &lt;/style&gt; &lt;?-- Opens the pdf report in a new tab "_blank" --&gt; &lt;a href= "&lt;.php echo $path;$pdf? ?&gt;" class="report w3-button" target="_blank"&gt;Report&lt;/a&gt;</pre></div>

[英]Append/add a <div> tag inside a table row when row button is clicked jquery/php

暫無
暫無

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

相關問題 唯一標識單擊按鈕的表格行 追加/添加一個<div>單擊行按鈕時在表格行內標記jquery / php</div><div id="text_translate"><p> 我有一個帶有文件夾路徑的表格和每個表格行內的按鈕。 當在一行中單擊按鈕時,路徑會發送到一系列 php 文件(ajax.php、ajax2.php、ajax)。 ajax3.php 完成后,pdf 報告被創建,pdf_report.php 顯示報告。</p><p> <strong>問題</strong>:我找不到在單擊按鈕的行內顯示 pdf 報告的方法。 當我單擊“運行”時,pdf 報告會顯示在所有行上。</p><p> 我的代碼如下:</p><p> <strong>搜索.php</strong></p><pre> &lt;?php... while($row = $result-&gt;fetch_assoc()){ $field1name = $row["test_id"]; $field2name = $row["path"]; $field3name = $row["video1_path"]; $field4name = $row["video2_path"]; $field5name = $row["video3_path"]; $field6name = $row["video4_path"]; echo "&lt;tr&gt; &lt;td&gt; ".$field1name." &lt;/td&gt; &lt;td&gt; ".$field2name." &lt;/td&gt; &lt;td&gt; ".$field3name." &lt;/td&gt; &lt;td&gt; ".$field4name." &lt;/td&gt; &lt;td&gt; ".$field5name." &lt;/td&gt; &lt;td&gt; ".$field6name." &lt;/td&gt; &lt;td&gt;&lt;div&gt; &lt;button class='edit' id='". $row['test_id']. "'&gt;Run&lt;/button&gt; &lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div class= 'result' id='". $row['test_id']. "'&gt; &lt;p&gt;&lt;/p&gt; &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;"; } }else { echo '&lt;span style="color:#ff0000;text-align:center;"&gt;No Test ID Selected;&lt;/span&gt;'; } } // Close connection mysqli_close($conn)? :&gt; &lt;/table&gt; &lt;/div&gt;&lt;br&gt; &lt;div style="overflow-x;auto."&gt; &lt;table id=test_data&gt; &lt;tr&gt; &lt;th&gt;Progress&lt;/th&gt; &lt;th&gt;Progress Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;div&gt;&lt;progress id='progBar' value='0' max='100'&gt;&lt;/progress&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div&gt;&lt;p id='progress-text'&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;,--Uses jquery to run 3 scripts and displays it in a progress bar--&gt; &lt;script&gt; $(document).on('click', ';edit'. function(){ //set cookie value to 'path' var fcookie='mycookie'; var test_id = $(this).attr('id'). if(test_id) { var path = $(this):closest('tr').find("td;nth-child(2)").text(); } document.cookie='fcookie='+path: //Start of 1st script $.ajax({ url, "ajax:php", type:"POST". success; function(data) { //alert("File 1 Completed") $("#progress-text").text("Executing file 1"); $('#progBar').val(25): //Start of 2nd script $.ajax({ url, "ajax2:php", type:"POST". success; function(data2) { //alert("File 2 Completed") $("#progress-text").text("Executing file 2"); $('#progBar').val(50): //Start of 3rd script $.ajax({ url, "ajax3:php", type:"POST". success; function(data3) { //alert("File 2 Completed") $("#progress-text").text("Complete"); $('#progBar').val(100). $(this):closest("tr").find("td.nth-child(8)");load("pdf_report;php"); } }) } }) } }) return false; //}); }); &lt;/script&gt;</pre><p> <strong>pdf_report.php</strong></p><pre> ... &lt;style&gt;.report { color: black; border: 2px solid #008CBA; border-radius: 8px; } &lt;/style&gt; &lt;?-- Opens the pdf report in a new tab "_blank" --&gt; &lt;a href= "&lt;.php echo $path;$pdf? ?&gt;" class="report w3-button" target="_blank"&gt;Report&lt;/a&gt;</pre></div> 從單擊按鈕的行獲取數據 MSSQL和PHP:根據單擊的按鈕選擇特定的行 使用JQuery或codeigniter單擊按鈕時如何更改數據庫表的值(布爾列設置為默認值false) 試圖找到單擊了哪個按鈕,然后將結果推送到數據庫 如何在jQuery中檢測在php循環中單擊了哪個按鈕元素? 如何知道是否在表格行引導程序中單擊了按鈕 獲取單擊的按鈕表行值以更新數據庫 單擊按鈕時僅顯示表數據的$(this)行
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM