2011-01-10 57 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... 
} 
相关问题