0

選択したHTML選択ボックスオプションに応じてMySQLクエリを実行し、クエリ結果を取得してHTMLテキストボックスに出力しようとしていますが、役に立ちません。スーパーグローバル$_GETでswitchステートメントを使用しています。PHPブロック内でJavascriptを使用して(echoを使用して)HTMLテキストボックスの値を設定しようとしていますが、機能しません。テキストボックスにデータが入力されていません(まだ空白です)。これは、テキストボックスが初期化される前にPHPが実行されているためか、他に何か足りないものがあるためでしょうか。DBログイン情報が正しく、クエリが実際に機能することは確かです。コードは以下のとおりです。

<?php
---db login info here---

switch($_GET['string'])
{
    case "another string":
        $query = mysql_query("SELECT field1 FROM table1 WHERE id = '1'");
        $row = mysql_fetch_row($query);
        break;
}

echo "<script type='text/javascript'>";
echo "document.getElementById('textbox').value = '$row[0]'";
echo "</script>";   
?>
4

1 に答える 1

2

いくつかのこと:

  1. ブラウザでサイトにアクセスしたときにサイトの「ソース」をチェックすることで、PHP 部分が機能していることを確認できます (<script>部分は期待どおりに見えますか?)

  2. 書かれているように、「テキストボックス」はこのスクリプトよりもドキュメントの前にある必要があることに注意してください。

  3. 問題の要素が の場合、属性<textarea>はなく、または類似のものを使用する必要があります。valueinnerHTML

  4. これがどのように達成されているかについて、より大きな問題があるかもしれません (これは ajax ですか? すべて 1 つの要求ですか? PHP で単純にテキスト ボックスを作成しないのはなぜですか?)

編集、PHPで行う

を作成するのがあなたのコードである場合は<input>、最初に php でそれを行うだけです (そうすれば、js に依存しないという追加の利点が得られます:

switch($_GET['string'])
{
    case "another string":
        $query = mysql_query("SELECT field1 FROM table1 WHERE id = '1'");
        $row = mysql_fetch_row($query);
        $textboxValue = $row[0];
        break;
}
?>
// ...
<input type="text" name="foo" id="textbox" value="<?php echo $textboxValue;?>" />
于 2012-08-29T16:00:39.890 に答える