如何在Ajax中更改HTML“select”元素的内容?

时间:2012-06-20 13:01:17

标签: php javascript ajax

PHP文件中有两个HTML“select”元素,比如list1和list2。我希望在list1的onChange事件上,然后使用Ajax调用PHP文件来更改list2的内容(显示文本和值)。 list2的内容将来自MySQL数据库表。怎么做?

这是我试过的:

<script language="javascript">
    function loadObjectsFromTypetache(typeTache)
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("obs_id_obj").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","ajaxRemplirObjetObsrv.php?type_tache="+typeTache,true);
        xmlhttp.send();
    }
    function Annuler() 
    {
        // Retour à la liste des enregistrements
        document.location = "<?php echo PAGE_ADMIN; ?>?action=AdminGererObservation";
    }
</script>
...
<select id="typ_tache_code" name="typ_tache_code" onChange="loadObjectsFromTypetache(document.form.typ_tache_code.value)"> // this is list1
<option value="" ><?php echo _getText('admin.obsrv.selectionnerTypeTache'); ?></option>
<?php

   for ($u=0; $u < $data['listTypeTache']['cnt']; $u++)
   {
?>
<option value = "<?php echo $data['listTypeTache'][$u]['typ_tache_code']; ?>"><?php echo $data['listTypeTache'][$u]['typ_tache_lib']; ?></option>
<?php
   }
?>
</select>
<select id="obs_id_obj" name="obs_id_obj">... // this is list2

那么在ajax调用的php url文件中写什么?

1 个答案:

答案 0 :(得分:0)

Tyr this

$('#select#s1').change(function(){
  $('select#s2').load('/url')
})

/ url 检索:

<option value="1">Second</option>
<option value="2">Second</option>