2011-01-10 59 views
2

這是一個奇怪的請求,但我在頁面上有兩個選擇元素,一個用於舊項目編號,另一個用於新項目編號。我使用PHP來填充從MySQL數據庫的下拉列表。我還設置了一個GET變量,用於保存來自超鏈接的傳入項目編號,並在另一個頁面上點擊。但是我想要做的是使用jQuery/PHP來接收傳入的項目編號,並查看它是否存在於任何一個下拉列表中?看看項目是否存在於jQuery/PHP的select元素中

這是GET代碼:

<?php echo $_GET['project_no']; ?> 
+0

通過下拉菜單,您是否確實是指[[select]](http://www.w3.org/TR/html401/interact/forms.html#h-17.6)元素? – 2011-01-10 16:24:26

+0

對不起。它只是我所謂的(道歉) – benhowdle89 2011-01-10 16:24:51

+0

沒問題,但你可能想編輯你的問題使用名稱(大多數)其他人稱他們爲... = b – 2011-01-10 16:25:35

回答

1

你可以用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); 
1

您需要通過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 
     }); 
    }, 
    // ... 
}); 
1

觀看在線演示在這裏:http://jsfiddle.net/APXGv/

//jQuery sweetness 
if($("#dropdown option[value='<?php echo $_GET['project_no']; ?>'").size()){ 
    alert("exists"); 
    //your code here... 
} 
相關問題