2011-06-28 22 views
0

MySQLデータベースのデータを照会するために値を使用するPHPでJavaScript関数に渡すための '選択項目'の値を取得できないようです - >別のドロップダウンリストに値を設定します。ここで選択項目の値を取得できませんか?

は、ここに私の 'HTML' コード

<select name="numbers" id="numbers" onChange="populateOtherSelect()"> 
    <option value="one">one</option> 
    <option value="two">two</option> 
    <option value="three">three</option> 
    <option value="four">four</option> 
</select> 

<?php echo $option ?> 

である私のJavaScript '関数のコードは、すべての情報が参考になります

function populateOtherSelect() { 
<?php 
    // code that opens db connection 

    $numbers = $_POST['numbers']; 

    $query = "select*from Database.Table where Something = 'Something' and Numbers like '%".$numbers."%'"; 

    $result = mysql_query($query); 

    $option = ""; 

    while($row = mysql_fetch_array($result)) 
    { 
     $OtherOptions = $row["OtherOptions"]; 
     $option.="<option value=\"$OtherOptions\">".$OtherOptions."</option>\r\n"; 
    } 

    // code that closes db connection 
?> 

}

です。私はあなたがあなたのselect文にスペースを追加する必要があると思う

どうもありがとうございました

+0

だから、基本的にはあなたのJavaScript関数は次のように見ているのでしょうか? '$ numbers'は空であるのですか?それともクエリに問題がありますか? – joakimdahlstrom

+0

はい、$ numbersは空です。 – TheRealDK

+0

これを行う場合は、フォームをポストする必要があります。これにより、リストを変更するたびにサイトがリロードされます。そうでなければ、それはAJAXです。@ jeroenからの回答を見てください。 – joakimdahlstrom

答えて

2

JavaScriptコードはhtml/phpドキュメントの一部であり、動作しません。 phpは最初のページロード時にのみ実行され、その時点ではおそらく$_POSTという変数はありません。

あなたがしなければならないことは、最初の選択が変更された瞬間にPHPスクリプトへのajax呼び出しを行い、そのajax呼び出しからの応答を使用して2番目の選択に移ります。だから、問題は何

function populateOtherSelect() { 
    /* 
    * 1. get the value of the numbers select 
    * 2. make an ajax call to a php script/the server that gets some information from a database 
    * 3. use the response from the ajax call to populate your second select 
    */ 
} 
+0

+1ちょうど彼がphp関数を呼び出す 'onChange'を持っていることに気付いた。 – joakimdahlstrom

0

:すべての

$query = "select * from Database.Table where Something = 'Something' and Numbers like '%".$Numbers."%'"; 
0

まず、$Numbers変数は、それが$numbersだ、存在しません。

+0

まあ、コードを変更するので、すべての命名に従うのが簡単です。 – TheRealDK