2013-10-15 89 views
0

我試圖在我生成的PHP下拉菜單中獲取所選項目的ID。現在控制檯說:「Uncaught TypeError:Object #exchanges option:selected has no method'attr'」我無法弄清楚發生了什麼問題。無法獲取下拉項目的ID

<html> 
<head> 
    <title>Administration</title> 
    <style> 
     #exchanges { 
      width: 300px; 
     } 
    </style> 

    <script src="http://codeorigin.jquery.com/jquery-2.0.3.min.js"></script> 
</head> 
<body> 

    <?php populateDropDown(); ?> 
    <button id="display_button">Display Information</button> 
</body> 

<script> 
    $(document).ready(function(){ 
     $('#display_button').on('click', function(){ 
      var dropdown_id = ('#exchanges option:selected').attr('id'); 
      alert(dropdown_id); // doesn't work 
     }); 
    }); 


</script> 

</html> 

PHP函數:

function populateDropDown(){ 
$conn = connectPDO(); 

echo '<select id="exchanges">'; 

foreach($conn->query('SELECT * FROM exchange') as $row) { 
    echo '<option id ='.$row['exchangeID'].'>'; 
    echo $row['exchange-name']; 
    echo '</option>'; 
    } 

echo '</select>'; 

} 
+0

選擇菜單本身可以使用該方法,但其子項(選項)不能。 默認行爲是爲該表單元素返回IT選定值,而不是其子標識。 – Dawson

回答

3

首先,你忘了美元符號在jQuery代碼:

var dropdown_id = ('#exchanges option:selected').attr('id'); 

應該是:

var dropdown_id = $('#exchanges option:selected').attr('id'); 

而且,在你的PHP ,改變這個:

echo '<option id ='.$row['exchangeID'].'>'; 

以下幾點:

echo '<option id="'.$row['exchangeID'].'">'; 

,看看它現在的作品。

+0

Jeeze。不知道我是如何錯過的。現在工作,謝謝!一旦時間流逝結束,將標記正確。 –