从select中获取值以在AJAX脚本中作为URL中的变量传递

时间:2013-05-26 10:36:10

标签: jquery ajax select

我使用以下ajax脚本将变量传递给PHP脚本:

<script>
    function showUser(str)
    {
        if (str == "")
        {
            document.getElementById("txtHint").innerHTML = "";
            return;
        }
        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("txtHint").innerHTML = xmlhttp.responseText;
            }
        }

        xmlhttp.open("GET", "/scripts/notes.php?s=2&q=" + str, true);
        xmlhttp.send();
    }
</script>

目前变量's'只是设置为2,但我想使用页面上select中的当前值动态设置它:

<select id='sessions'>
<option value='5'>5 sessions</option>
<option value='10'>10 sessions</option>
<option value='1000'>All sessions</option>
</select>

我尝试过使用:

var sessions= $("#sessions").val();
在设置URL之前的上述脚本中

,然后将's = 2'更改为's = sessions',但是没有传递正确的值(我怀疑s被传递为空)。

我需要做些什么来改变它?

1 个答案:

答案 0 :(得分:1)

  

将's = 2'更改为's = sessions'

将字符串设置为"/scripts/notes.php?s=session&q="不会传递变量。试试"/scripts/notes.php?s=" + session + "&q="

function showUser(str)
{
    var sessions= $("#sessions").val();

    if (str == "")
    {
        document.getElementById("txtHint").innerHTML = "";
        return;
    }
    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("txtHint").innerHTML = xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET", "/scripts/notes.php?s="+sessions+"&q=" + str, true);
    xmlhttp.send();
}