的index.php
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ajax.js"></script>
<a href='one.php' class='ajax'>One</a>
<a href='two.php' class='ajax'>Two</a>
<div id="workspace">workspace</div>
one.php
$arr = array ( "workspace" => "One" );
echo json_encode( $arr );
two.php
$arr = array( 'workspace' => "Two" );
echo json_encode( $arr );
ajax.js
jQuery(document).ready(function(){
jQuery('.ajax').live('click', function(event) {
event.preventDefault();
// load the href attribute of the link that was clicked
jQuery.getJSON(this.href, function(snippets) {
for(var id in snippets) {
// updated to deal with any type of HTML
jQuery('#' + id).html(snippets[id]);
}
});
});
});
以上代码工作正常。当我单击链接'One'时,字符串'One'被加载到工作区DIV中,当我单击链接'Two'时,字符串'Two'被加载到工作区DIV中。
问题:
现在我想使用下拉列表在工作区DIV中加载one.php和two.php而不是index.php中的链接。当我使用链接时,我在链接属性中使用class ='ajax'但是如何在下拉更改事件中调用ajax请求?
由于
答案 0 :(得分:3)
更改您的代码:
jQuery('#dropdown_id').live('change', function(event) {
jQuery.getJSON($(this).val(), function(snippets) {
for(var id in snippets) {
// updated to deal with any type of HTML
jQuery('#' + id).html(snippets[id]);
}
});
});
您的下拉列表应如下所示:
<select id="dropdown_id">
<option value="one.php">One</option>
<option value="two.php">Two</option>
</select>
答案 1 :(得分:0)
在下拉列表中将href指定为列表项值。更改下拉列表,进行ajax调用。
类名“ajax”仅供参考(如果您想要处理超过一个元素的事件,则非常有用)。