选择多个选项,将它们用作数组,并从数据库中检索数据而不加载页面

时间:2014-05-04 23:34:53

标签: javascript php jquery html ajax

如果没有加载页面,我无法从数据库中检索多个选择数据。

我想选择多个选项并根据选择检索数据,这是我的select标签的代码:

   <select name="country[]" multiple="multiple" onChange="getSkill(this.value)">
   <option value="">--Select Categoery--</option>
    <?php while ($row=mysql_fetch_array($result)) {
 $cid = $row['cid'];
  ?>
   <option value=<?php echo $row['cid']?>><?php echo $row['categotie']?></option>
  <?php } ?>
 </select>

我的AJAX代码是:

          function getSkill(cid) {      

    var strURL="findskill.php?cid="+cid;
    var req = getXMLHTTP();

    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {                        
                    document.getElementById('skilldiv').innerHTML=req.responseText;

                } else {
                    alert("Problem while using XMLHTTP:\n" + req.statusText);
                                  document.getElementById('marksdiv').innerHTML='<p name="marks">'+
                    '</p>';             
                }
            }               
        }           
        req.open("GET", strURL, true);
        req.send(null);
    }       
}

如何检索多个值?我只能检索一个值。

1 个答案:

答案 0 :(得分:0)

根据您在服务器中的期望值,正确获取值时,在处理多个选择时,而不是:

<select name="country[]" multiple="multiple" onChange="getSkill(this.value)">

如果您使用的是jQuery,请替换为:

<select name="country[]" multiple="multiple" onChange="getSkill($(this).val())">

请注意,如果您不使用jQuery,则需要更长的代码。

然后,您的函数将会收到[cid1, cid2, cid3, ....]

然后,这取决于您的服务器代码,例如,如果您希望在服务器cid1,cid2,cid3中替换:

var strURL="findskill.php?cid="+cid;

使用:

var strURL = "findskill.php?cid=" + cid.join(',');

Fiddle