2016-07-07 53 views
-1

如果我有一個包含多行的表格,並且每行都有相同的選擇框,我將如何獲取所選下拉列表的值?無論我選擇哪一行,我目前只獲得第一行的第一個值。如何在表格內的下拉列表中選擇一個值?

<form action="<?php echo $_POST['PHP_SELF'] ; ?>" method="post"> 
     <table class="radius" id="drTable"> 
      <tr> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.dr_id&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">ID</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.lastname&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Name</a></th>      
       <th><a href="index.php?page=donation-requests&amp;order_by=d.location&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Store</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.organization&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Organization</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.event_name&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Event Name</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.event_date&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Event Date</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.date_required&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Date Needed By</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=a.date_requested&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Date Requested</a></th> 
       <th><a href="index.php?page=donation-requests&amp;order_by=c.status&amp;order_direction=<?php if($order_direction == "ASC") { echo "DESC" ; } else { echo "ASC" ; } ?>">Status</a></th> 
        <th class="text-center">View/Edit</th> 
       <th class="text-center">Delete</th> 
      </tr> 
    <?php 
      while($row = $result->fetch()) { 
    ?> 
      <tr> 
       <td><?php echo $row['dr_id'] ; ?></td> 
       <td><?php echo $row['lastname'].", ".$row['firstname'] ; ?></td> 
       <td><?php echo $row['location'] ; ?></td> 
       <td><?php echo $row['organization'] ; ?></td> 
       <td><?php echo $row['event_name'] ; ?></td> 
       <td><?php echo date("F j, Y", $row['event_date']) ; ?></td> 
       <td><?php echo date("F j, Y", $row['date_required']) ; ?></td> 
       <td><?php echo date("F j, Y", $row['date_requested']) ; ?></td> 
       <td> 
       <select class="radius" onchange="updateStatus(<?php echo $row['dr_id']; ?>);"> 
        <option selected="true" disabled="disabled"><?php echo $row['status'];?></option> 
        <?php echo statusOptions($row['status']) ; ?> 
       </select> 
      </td> 
      <td class="text-center"> <a href="index.php?page=donation-requests-edit&amp;viewing_id=<?php echo $row['dr_id'] ; ?>&status=<?php echo $_GET['status'] ; ?>"><i class="fi-pencil size-24"></i></a></td> 
       <td class="text-center"><a href="#" onClick="deleteRequest(<?php echo $row['dr_id'] ; ?>)"><i class="fi-trash size-24"></i></a></td> 
      </tr>         

    <?php    
      }  
    ?>    
     </table> 
    </form>  

的jQuery:

function updateStatus(dr_id) { 

var id = dr_id; 


    $.ajax({ //create an ajax request to load_page.php 
    type: "GET", 
    // url: "drStatus_update.php?id="+id+"&status="+status,   
    dataType: "html", //expect html to be returned     
    success: function(response){      
     //alert(response); 
     alert(status); 
    } 

    }); 

} 
+0

我們需要您的一些代碼示例,至少要知道問題出在哪裏。 –

+0

使用[':eq()'](https://api.jquery.com/eq-selector/)選擇器來執行此操作。 – Mohammad

回答

1

考慮你有如下表標記

 <table id="tblData"> 
      <tr> 
       <td> 
        <select> 
         <option value="11">11</option> 
         <option value="12">12</option> 
        </select></td> 
      </tr> 
      <tr> 
       <td> 
        <select> 
         <option value="21">21</option> 
         <option value="22">22</option> 
        </select></td> 
      </tr> 
      <tr> 
       <td> 
        <select> 
         <option value="31">31</option> 
         <option value="32">32</option> 
        </select></td> 
      </tr> 
      <tr> 
       <td> 
        <select> 
         <option value="41">41</option> 
         <option value="42" selected="selected">42</option> 
        </select></td> 
      </tr> 
     </table> 

可以遍歷各行,找到所選擇的值。

 // loop through each row. 
     $("#tblData tr").each(function() { 
      // find the select tag and get its selected value. 
      $(this).find("select").val(); 
     }); 

這種方式可以進一步實現自己的功能,上面的代碼演示瞭如何在目標單獨的行不同的下拉列表。

+0

謝謝你 - 在某種程度上它給了我一個空白的結果,我提供我上面的代碼。在我的問題是否有幫助 – Mike

+0

你可以在代碼中包含完整的表格嗎?還有你想用選定的值或需要獲取選定值的地方實現的功能。代碼,禁用的項目將不會被渲染爲選項,即使它在您的標記中被選擇=「true」。我希望您已經知道這個。 –

+0

我剛更新了代碼以顯示完整的表格(上圖) – Mike

3

我希望我理解你的權利!

結帳這樣:

// true: test onChange, false: use jQuery Event 
 
var testOnChange = true; 
 

 

 
var $selectboxes = $('table').find('select'); 
 
$selectboxes.on('change', function() { 
 
    if(testOnChange) { 
 
    return; 
 
    } 
 
    
 
    var $select = $(this); 
 
    var selectedText = $select.find('option:selected').text(); 
 
    var selectedValue = $select.val(); 
 
    $select.parent().next('td').html('Oh ' + selectedText + ', ' + selectedValue + '!!!' + '<br>Index: ' + $selectboxes.index(this)); 
 
}); 
 

 

 
function updateStatus(element) { 
 
    
 
    if(!testOnChange) { 
 
    return; 
 
    } 
 
    
 
    var $select = $(element); 
 
    $select.parent().next('td').html(element.value + ' <br> ' + element.innerHTML + '<br> Index: ' + $selectboxes.index($select)); 
 
}
table, td { 
 
    border: 1px solid #ccc; 
 
} 
 

 
td { 
 
    padding: 10px; 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
<tr> 
 
    <th>What i need?</th> 
 
    <th>Really?</th> 
 
</tr> 
 
<tr> 
 
    <td> 
 
    <select onChange="updateStatus(this)"> 
 
     <option value="yes">Bier</option> 
 
     <option value="yes">V(W)odka</option> 
 
     <option value="no">Water</option> 
 
    </select> 
 
    </td> 
 
    <td></td> 
 
</tr> 
 
<tr> 
 
    <td> 
 
    <select onChange="updateStatus(this)"> 
 
     <option value="yes">McDonalds</option> 
 
     <option value="yes">Burger King</option> 
 
     <option value="no">Fish</option> 
 
    </select> 
 
    </td> 
 
    <td></td> 
 
</tr> 
 
<tr> 
 
    <td> 
 
    <select onChange="updateStatus(this)"> 
 
     <option value="no">-500$</option> 
 
     <option value="yes">1.000.000$</option> 
 
     <option value="yes">500$</option> 
 
    </select> 
 
    </td> 
 
    <td></td> 
 
</tr> 
 
</table>

+0

謝謝@pleinx。我的選擇標籤已經有一個onchange功能。我如何遍歷每一行中的每個選擇框來查找選定的值?說有20行,我點擊第5行,我想知道什麼選擇框值回升.. – Mike

+0

我已經在選擇框中一個onchange還有:平變化=「updateStatus() – Mike

+0

@MikeCerveni我更新了搗鼓你 – pleinx

相關問題