Ok,这段代码现在似乎正在工作(ajax获得当前选择)。但我现在有另一个问题。当我使用php $_GET方法(用于以后的数据库搜索)时,输出不仅仅是下拉选择的单词,而且还生成另一个下拉菜单。还有WAMP错误- GET的未定义索引。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#select").change(function(){
$.ajax({
url: "test.php?selected=" +$(this).val(),
success:function(data){
$("#results").html(data);
}
}
)
})
});
</script>
<select id="select">
<option> something </option>
<option> something2 </option>
<option> something3 </option>
</select>
<?php
echo $_GET['selected'];
?>
<div id="results"></div>
<option>
需要有value
<option value="test">
出现这个问题是因为您在ajax调用中使用了自引用而没有考虑回发。此外,初始页面加载将抛出未定义索引错误,因为selected
键不存在于$_GET
集合中。
在你的test.php
文件的顶部:
<?php
if(array_key_exists('selected', $_GET))
{
echo $_GET['selected'];
die();
}
?>
然后在你的例子中删除你的echo。
注意,这是,只有才能使您的示例正常工作并显示它失败的原因。没有给出一个格式良好的AJAX请求示例。
echo $_GET['selected'];
应该显示什么?
你能给我们一些PHP代码吗?
如果你有一个undefinex index for GET
,这意味着数组$_GET
不包含名为selected
的键。selected
从何而来?
如果它来自你给我们的JavaScript,那么它应该是select
代替。(另外,不建议使用关键字select
来命名select
。)