如何使用jQuery提取xml数据并使用提取的数据更新网页

时间:2011-07-30 09:28:57

标签: jquery xml

我有一个页面,其中包含需要在执行某些操作时更新的部分 这是一个描述

将有三个下拉菜单 当第一个下拉列表更改值时,第二个下拉列表应包含特定于第一个下拉列表所选项目的选项,第二个下拉列表更改第三个下拉列表选项等等。

<html>
<head></head>
<body>
<select name=section1 id=section1>
    <option value=option1>Option1</option>
    <option value=option2>Option2</option>
</select>
<select name=section2 id=section2>
    <option value=option1>Option1</option>
    <option value=option2>Option2</option>
</select>
</body>
</html>

这是Javascript

 $('#section1').removeAttr('onchange'); 
 $('#section1').change(function () {
var level = $("#section1").val();
alert(level);

 $.ajax({
   type:'post',
   url: 'ajax/education.php',
   data: "level="+level,
   dataType:'xml',
   success: function(data) {
 // alert(jqXHR.response);

//classes=data.find('classes').text();
   $('#section2').html(classes);

   },
  error: function(jqXHR,textStatus,errorThrown) { alert(jqXHR.response); }
 });    
 });

这是生成xml;

的php文件
 require_once('../library/config.php');
 require_once('../library/database.php');


$db = new Database();
$level_classes='';
$class_subjects='';

if(isset($_POST['level'])){
$level = $_POST['level'];
$db->query("SELECT l.class_name,c.id,c.class FROM level l JOIN class c ON    c.level_id=l.id WHERE l.id='$level'");
foreach($db->getData() as $data){
    extract($data);
    $level_classes.="<option value='$id'>$class_name $class</option>";

}
 }elseif(isset($_POST['classes'])){
$class=$_POST['classes'];
$db->query("SELECT s.id,s.name FROM class_subjects cs l JOIN subjects s ON s.id=cs.subject_id WHERE cs.class_id='$class' ORDER BY s.name");
foreach($db->getData() as $data){
    extract($data);
    $class_subjects .="<option value='$id'>$name</option>"; 
}   

 }elseif(isset($_POST['subjects'])){
$class=$_POST['classes'];
$db->query("SELECT s.id,s.name FROM class_subjects cs l JOIN subjects s ON s.id=cs.subject_id WHERE cs.class_id='$class' ORDER BY s.name");
foreach($db->getData() as $data){
    extract($data);
    $class_subjects .="<option value='$id'>$name</option>"; 
}   

 }
 echo '<?xml version= "1.0" encoding="utf-8" standalone="yes" ?>';
 echo "<classes>".htmlentities($level_classes)."</classes>";
 echo "<subjects>".htmlentities($class_subjects)."</subjects>";

使用上面的代码,我得到的错误部分比jQuery ajax的成功部分更有效。我哪里错了

0 个答案:

没有答案