1

PHP の While ループを使用して、MySQL データベースからの値を含む html 選択ボックスを表示する以下のコードがあります。

<select name="badge">
    <option value="">Please Choose...</option>
    <?php
    $sql2="SELECT * from badges order by name ASC ";
    $rs2=mysql_query($sql2,$conn) or die(mysql_error());
    while($result2=mysql_fetch_array($rs2))
    {
        echo '<option value="'.$result2["sequence"].'">'.$result2["name"].'</option>';
    }
    ?>
    </select>

私のバッジテーブルには、次の列があります

  1. 順序
  2. 名前
  3. ノート

セレクトボックスの値が変化したときに、選択した行のメモ欄を表示できるようにしたい

私は現在これを持っていますが、MySQL テーブルのデータを使用していません

<select id="select_test" name="form_select">
       <option value="0">No</option>
       <option value ="1">Yes</option>
    </select>

    <div id="div1" style="display: none;">hidden text</div>

<script>
        document.getElementById('select_test').addEventListener('change', function () {
            var style = this.value == 1 ? 'block' : 'none';
            document.getElementById('div1').style.display = style;
        });
</script>

MySQLで上記を行うにはどうすればよいですか?

通常の HTML では次のようになります。

http://jsfiddle.net/qHMJg/

4

1 に答える 1

0

残念ながら、ブラウザから MySQL サーバーにアクセスすることはできません。私の例ではjqueryを使用しています。生のjavascriptに変換できます(または、できない場合はここにコメントしてください)が、jQueryを使用することを強くお勧めします。 JS、必要に応じて明日回答を更新します)

要素の条件 (必要な場合) が満たされると、ajax (jquery を使用したくない場合は、ネイティブのajaxを使用できます) を使用してサーバーを呼び出すことができます。応答に応じて、div1 要素を更新できます。

ajax に応答するために特別に作成された別のページにクエリを実行できます。このコードを php ページに使用できます。POST を使用している場合は $_GET を $_POST に置き換えるか、「sequence」を ajax 呼び出しに付けた名前に置き換えます

$sql2="SELECT * from badges WHERE `sequence` = {$_GET['sequence']}";
$sql2=mysql_real_escape_string($sql2); // This is to prevent SQL injection should a hacker send bad data to your .php file
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
$result2=mysql_fetch_array($rs2);
echo $result2["notes"];

Ps: mysql には PDO を使用することを強くお勧めします。はるかに便利で安全です。

次に、ajax 応答を受信したら、div の値をサーバーからの応答に置き換えます。

于 2013-10-06T13:57:20.730 に答える