Javascript 将数组从Select传递到xmlhttp

Javascript 将数组从Select传递到xmlhttp,javascript,php,Javascript,Php,我想将select中的一组值传递到下面的xmlhttp.open请求中,以便在新页面中解析变量。如何做到这一点?我尝试了下面的语法,但按下按钮时会抛出500错误 <script type="text/javascript"> function GetData() { var xmlhttp = new XMLHttpRequest(); var hiredate = document.getElementById("hiredate").value;

我想将select中的一组值传递到下面的xmlhttp.open请求中,以便在新页面中解析变量。如何做到这一点?我尝试了下面的语法,但按下按钮时会抛出500错误

    <script type="text/javascript">
function GetData() {
    var xmlhttp = new XMLHttpRequest();
    var hiredate = document.getElementById("hiredate").value; 
    var termdate = document.getElementById("termdate").value
    var arr = document.getElementById("bq").value;
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
           if (xmlhttp.status == 200) {
               document.getElementById("data").innerHTML = xmlhttp.responseText;
           }
           else if (xmlhttp.status == 400) {
              alert('There was an error 400');
           }
           else {
               alert('something else other than 200 was returned');
           }
        }
    };
    xmlhttp.open("GET", "Query.php?hiredate="+hiredate+"&termdate="+termdate+"&array="+arr, true);
    xmlhttp.send();
}
</script>

<select name="bq" size="12" multiple="multiple" tabindex="1">
<option value="HireDate">HireDate</option>
<option value="TermDate">TermDate</option>
<option value="Dept">Dept</option>
<option value="Manager">Manager</option></select>
Start Date: <input type="date" name="hiredate" id="hiredate">
End Date: <input type="date" name="termdate" id="termdate">
<input type="submit" value="Submit" id="ajaxButton" onclick="GetData()">
<div id="data">

错误描述是什么?如果尝试手动导航到Quary.php会发生什么?hiredate=+hiredate+&termdate=+termdate+&array=+arr?你有500个错误吗?@JulienB不,它在文件本身中显示.php代码。-我自动假设这是因为无法按照我在querystring中设置的方式传递数组。哼,您的服务器启用了php吗?@JulienB。-是的,其他.php页面完全按照它们应该的方式工作。错误描述是什么?如果尝试手动导航到Quary.php会发生什么?hiredate=+hiredate+&termdate=+termdate+&array=+arr?你有500个错误吗?@JulienB不,它在文件本身中显示.php代码。-我自动假设这是因为无法按照我在querystring中设置的方式传递数组。哼,您的服务器启用了php吗?@JulienB。-是的,其他的.php页面完全按照它们应该的方式工作。
<?php

    $hiredate = $_GET['hiredate'];
    $termdate = $_GET['termdate'];
    $sql = '';
    $selected_fields = array();   
    foreach ($_GET['array'] as $selectedOption){
        $selected_fields[] = $selectedOption;
    }
    if(!empty($selected_fields)){
        $fields = implode(',', $selected_fields);
        $sql = 'SELECT '.$fields.' from testtable'; 
    }

    $sql = $sql & "WHERE hiredate = $hiredate AND termdate = $termdate";
    echo $sql
?>