这是一个奇怪的请求,但我在页面上有两个选择元素,一个用于旧项目编号,另一个用于新项目编号。我使用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