0

PHP ページに HTML5 のフォームがあります。一部のフォーム要素には、ドロップダウン メニューにオプションを設定するための PHP コードが含まれています。各メニューにはさまざまなオプションがありますが、それらはすべて同じ PHP コード (query.php と呼ばれます) によって入力されます。

HTML 要素の名前を query.php に渡して、実行するクエリを決定したいと考えています。query.php は一般的に次のようにコーディングされています。

<?php
$connection = pg_connect(...);
$query = "SELECT name FROM table ORDER BY name ASC;";
$results = pg_query($connection, $query);
$rows = pg_num_rows($results);

for ($i=0; $i < $rows; $i++) {
    ?>
    <option><?php echo pg_fetch_result($results, $i, 0); ?></option>
    <?php
}
?>

$query「テーブル」をHTMLからの変数にしたい。HTML の行の例を次に示します。

<p>Select a City: <select name="city"><?php include("query.php"); ?></select>

「query.php」をに置き換えてHTTP GETメソッドを使用しようとしていますquery.php?table=$this.name。query.php で使用して渡された値を取得できるはずであることは理解してい$_GET['table']ますが、HTML 要素の名前を取得する関数がわかりません。HTML タグ内で使用すると、HTML 要素の名前を返す関数はどれですか? たとえばquery.php?table=$this.name、上記の HTML で使用する場合$_GET['table']、query.php では「city」を返す必要があります。$this.name だけが正しい関数ではありません。

4

3 に答える 3

2

これを行う関数を作成することをお勧めします。

<?php include("query.php"); ?>

<p>Select a City: <select name="city"><?php echo queryFunction("city"); ?></select></p>

query.php で:

<?php
function queryFunction($table) {
    $connection = pg_connect(...);
    $query = "SELECT name FROM $table ORDER BY name ASC;";
    $results = pg_query($connection, $query);
    $rows = pg_num_rows($results);
    $string = "";    

    for ($i=0; $i < $rows; $i++) {
        $string = $string . "<option>" . pg_fetch_result($results, $i, 0) . "</option>";
    }

    return $string;
}
?>

自分で指定しない限り、選択ボックスの名前を取得する方法はないと確信しています。これが JavaScript で行われていれば、可能だったでしょう。

于 2013-03-04T14:00:22.787 に答える
1

これに対する通常のアプローチは次のようになります。

query.php で:

<?php
function generateTags() // you can put arguments here
{ 
    $connection = pg_connect(...);
    $query = "SELECT name FROM table ORDER BY name ASC;";
    $results = pg_query($connection, $query);
    $rows = pg_num_rows($results);

    for ($i=0; $i < $rows; $i++) {
            echo "<option>".pg_fetch_result($results, $i, 0)."</option>";
        }
}
?>

そしてphp htmlで:

<?php include("query.php"); ?><!-- do this just once at the beginning -->

<p>Select a City: <select name="city"><?php generateTags(/* here could be your arguments */); ?></select>
于 2013-03-04T13:59:04.717 に答える
0

PHP で html タグにアクセスすることはできません。 への呼び出しでテーブル名を手動で記述する必要がありますquery.php。そのファイルのコードを使用する方法のより良い解決策については、他の回答をご覧ください。

(ちなみに$this、オブジェクトを操作するためだけのものであり、オブジェクトプロパティにアクセスするための構文$this->nameは PHP であり$this.name、 ではありませんが、ここにはオブジェクトがないため、まったく関係ありません;)

于 2013-03-04T14:02:50.817 に答える