dtvp3625 2011-08-31 10:00
浏览 72
已采纳

如何在php ajax中传递多个列表框值获取url?

I also want a listbox with multiple selection to use along with the above code, but its not working

$cnty is the variable (listbox - multiselection).

Below is my complete ajax function used .

<script language="javascript" type="text/javascript">


function ajaxFunction(){
    var ajaxRequest;  // The variable that makes Ajax possible!

    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            //document.myForm.time.value = ajaxRequest.responseText;
            document.getElementById("result").innerHTML=ajaxRequest.responseText

        }
    }

    var dav = document.getElementById('dav').value;
    var pathogen = document.getElementById('pathogen').value;
    var topic1 = document.getElementById('topic1').value;
    var ind1 = document.getElementById('ind1').value;
    var subindg1 = document.getElementById('subindg1').value;
    var cnty = document.getElementById('countryRF').value;

    var queryString = "?dav=" + dav + "&pathogen=" + pathogen + "&topic1=" + topic1 + "&ind1=" + encodeURIComponent(ind1) + "&subindg1=" + encodeURIComponent(subindg1) +  "&cnty=" + encodeURIComponent(cnty);
    ajaxRequest.open("GET", "sortby.php" + queryString, true);
    ajaxRequest.send(null);
}


</script>

sortby.php page

<?php

                                $con = mysql_connect("localhost","root","adminpp");
                                mysql_select_db("pdata", $con);
$datav=$_GET["dav"];
$pathogen=$_GET["pathogen"];
$topic1=$_GET["topic1"];
$ind1=$_GET['ind1'];
$subindg1=$_GET["subindg1"];
$cnty=$_GET['cnty'];



echo $subindg1;
echo $cnty;

?>
  • 写回答

1条回答 默认 最新

  • douyi0219 2011-08-31 11:23
    关注

    There's a variety of ways to pass a multiselect list to the server through Ajax. This is just one of many... and probably not even the best. :)

    I'm going to use the variable name multisel throughout so you can find it easily and see how to use it.

    Add this function to your javascript

    function loopSelected(selObj)
    {
        var selectedArray = new Array();
        var i;
        var count = 0;
        for (i=0; i<selObj.options.length; i++) {
            if (selObj.options[i].selected) {
                selectedArray[count] = selObj.options[i].value;
                count++;
            }
        }
        return selectedArray;
    }
    

    Now, add the following lines to ajaxFunction just after your variables.

    var selObj = document.getElementById('multistore');
    
    var multisel = loopSelected(selObj).join('~');  // join array into a string
    

    Finally, in PHP, add these lines

    $multisel = $_GET['multisel'];
    $multisel_array = explode('~',$multisel);   // split the items into an array
    
    var_dump($multisel_array);
    

    At this point all of the selected items are in $multisel_array.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献