0

find.phpファイルに次のコードがあります。

<select name="EmpName" required="required" id='empn'>
    <option value="" style="display:none;"></option>    
    <?php

    //get the employee id 
        $employeeId = $_POST['country'];

    //make connection to database, bail if no connection
    $connection = odbc_pconnect('db','','');
    if (!$connection) { exit("Connection Failed: " . $connection); }

    //retrieve usernames and passwords
    $sql = "SELECT EName FROM LoginTable WHERE EmployeeID='$employeeId'";

    $rs = odbc_exec($connection, $sql);

    while(odbc_fetch_row($rs)) {
        $rowJobNum = odbc_result($rs, 'EName');
        printf("<option value='%s'>%s</option>", $rowJobNum, $rowJobNum);
    }

?></select>

index.phpファイルに次のコードがあります。

<script>
function getXMLHTTP() { //function to return the xml http object
        var xmlhttp=false;  
    try{
        xmlhttp=new XMLHttpRequest();
    }
    catch(e)    {       
        try{            
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e1){
                xmlhttp=false;
            }
        }
    }

    return xmlhttp;
}



function getCity(strURL) {      

    var req = getXMLHTTP();

    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {                        
                    document.getElementById('citydiv').innerHTML=req.responseText;                      
                } else {
                    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                }
            }               
        }           
        req.open("GET", strURL, true);
        req.send(null);
    }

}
</script>




</head>

<body>

<form method="post" action="" name="form1">
<table width="60%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="150">Country</td>
    <td  width="150"><select name="country" onChange="getCity('find.php?country='+this.value)">
    <option value="">Select Country</option>
    <option value="1">mg05</option>
    <option value="2">Canada</option>
        </select></td>
  </tr>
  <tr style="">
    <td>City</td>
    <td ><div id="citydiv"><select name="city">
        </select></div></td>
  </tr>

</table>  
</form>
</body>
</html>

ここに問題があります...最初のドロップダウンメニューからの選択にアクセスできません。ドロップダウンメニューからの選択は決してに渡されませんfind.php。参考までmg05に、ドロップダウンリストには従業員IDがあります。ここでは、元々都市/州など用にフォーマットされた例を使用しています。

これが私の大きな問題です。

$sql = "SELECT EName FROM LoginTable WHERE EmployeeID = '$employeeId'";

に変更します

$sql = "SELECT EName FROM LoginTable WHERE EmployeeID= 'mg05'";

完全に機能し、正しい結果を返します。だから...明らかにindex.phpからfind.phpへのデータの投稿が機能しておらず、その理由がわかりません。私は自分のサイトの他の領域$_GET$_POST働いていますが、これはそうではありません。

私がどこで間違っていたのかについての洞察はありますか?getとpostの両方を使用してみましたが、何も機能しませんでした。

4

1 に答える 1

1

問題は、selectに表示されたテキストが投稿されることを期待していることです。選択したオプションにvalue属性がある場合、これは発生しません。value属性が使用されます

<select name="country" onChange="getCity('find.php?country='+this.value)">
    <option value="">Select Country</option>
    <option value="mg05">mg05</option>
    <option value="Canada">Canada</option>
</select>
于 2013-01-19T00:16:43.220 に答える