簡體   English   中英

如何在php ajax中獲取多個列表框值以獲取URL?

[英]How to pass multiple listbox values in php ajax get url?

我還希望將具有多個選擇的列表框與上面的代碼一起使用,但是它不起作用

$ cnty是變量(列表框-多選)。

下面是我使用的完整ajax函數。

<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頁面

<?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;

?>

有多種方法可以通過Ajax將多選列表傳遞到服務器。 這只是眾多中的一種...也許甚至不是最好的。 :)

我將在整個文章中使用變量名multisel ,以便您可以輕松找到它並了解如何使用它。

將此功能添加到您的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;
}

現在,在變量之后ajaxFunction添加到ajaxFunction

var selObj = document.getElementById('multistore');

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

最后,在PHP中,添加以下行

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

var_dump($multisel_array);

此時,所有選定項都在$multisel_array

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM