這是一個奇怪的請求,但我在頁面上有兩個選擇元素,一個用於舊項目編號,另一個用於新項目編號。我使用PHP來填充從MySQL數據庫的下拉列表。我還設置了一個GET變量,用於保存來自超鏈接的傳入項目編號,並在另一個頁面上點擊。但是我想要做的是使用jQuery/PHP來接收傳入的項目編號,並查看它是否存在於任何一個下拉列表中?看看項目是否存在於jQuery/PHP的select元素中
這是GET代碼:
<?php echo $_GET['project_no']; ?>
這是一個奇怪的請求,但我在頁面上有兩個選擇元素,一個用於舊項目編號,另一個用於新項目編號。我使用PHP來填充從MySQL數據庫的下拉列表。我還設置了一個GET變量,用於保存來自超鏈接的傳入項目編號,並在另一個頁面上點擊。但是我想要做的是使用jQuery/PHP來接收傳入的項目編號,並查看它是否存在於任何一個下拉列表中?看看項目是否存在於jQuery/PHP的select元素中
這是GET代碼:
<?php echo $_GET['project_no']; ?>
你可以用PHP分配一個JavaScript變量:
<?php
/*... other php */
echo 'var projectNumber = "' . $_GET['project_no'] . '";';
/*... other php */
?>
這使得到:
var projectNumber = "12345"; // or whatever value 'project_no' might contain
,然後在jQuery的:
$('select > option:contains(' + projectNumber + ')').attr('selected',true);
這,顯然,選擇該值。不過,您可以輕鬆使用某種if
語句。這取決於你想要如何處理值,如果找到。
編輯添加下面的選擇,這是稍微更有意義,並且採用了稍微明顯attribute equals selector,雖然這不看文字,這在前面的例子,與:contains()
作用:
$('select > option[value=' + projectNumber + ']').attr('selected',true);
您需要通過option
節點interate和比較值。
function lookup(check, cb) {
$('#somedropdown').find('option').each(function(index, elem) {
if(elem.value === check) {
cb();
return false;
}
});
}
$.ajax({
// ...
success: function(data) {
lookup(data.project_name_for_instance, function() {
// match
});
},
// ...
});
觀看在線演示在這裏:http://jsfiddle.net/APXGv/
//jQuery sweetness
if($("#dropdown option[value='<?php echo $_GET['project_no']; ?>'").size()){
alert("exists");
//your code here...
}
通過下拉菜單,您是否確實是指[[select]](http://www.w3.org/TR/html401/interact/forms.html#h-17.6)元素? – 2011-01-10 16:24:26
對不起。它只是我所謂的(道歉) – benhowdle89 2011-01-10 16:24:51
沒問題,但你可能想編輯你的問題使用名稱(大多數)其他人稱他們爲... = b – 2011-01-10 16:25:35