HTMLページを動的に構築するJavaScriptがあります。 htmlページには、ユーザーが情報を入力するためのテキストエリアボックスがあります。情報は既にデータベースに存在します。 mysqlデータベース内のデータベースをtextareaボックスに入力したいと思います。データベースに接続し、データを使用してhtmlテーブルを作成するphpコードがあるため、phpでこれを行う方法は知っていますが、javascripからこれを行う方法はわかりません。私はajaxのgetリクエストなどを研究しましたが、まだこれを行う方法がわかりません。
おそらく最も簡単な方法は、PHPファイルからJSONを返すことです。それで、ファイル_query.php
_があるとしましょう。
_$result = mysql_query("SELECT field_name, field_value
FROM the_table");
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
$to_encode[] = $row;
}
echo json_encode($to_encode);
_
Document.writeの使用に制約されている場合(以下のコメントでメモするように)、フィールドに次のようなid属性を指定します:_<input type="text" id="field1" />
_。このフィールドは、jQuery:$("#field1").val()
で参照できます。
HTMLを使用した完全な例を次に示します。フィールドが_field1
_および_field2
_と呼ばれると仮定する場合、
_<!DOCTYPE html>
<html>
<head>
<title>That's about it</title>
</head>
<body>
<form>
<input type="text" id="field1" />
<input type="text" id="field2" />
</form>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
$.getJSON('data.php', function(data) {
$.each(data, function(fieldName, fieldValue) {
$("#" + fieldName).val(fieldValue);
});
});
</script>
</html>
_
これは、HTMLが構築された後の挿入であり、最も簡単な場合があります。 HTMLを動的に構築しているときにデータを入力する場合は、PHPファイルがJSONを返すようにする必要があります。単にvalue
属性に直接追加します。
あなたは本当にjavascriptからそれを「ビルド」する必要がありますか、またはビルドされたHTMLをPHPから返してDOMに挿入するだけですか?
Javascriptを使用するには、次のようなことができます。
<script type="Text/javascript">
var text = <?= $text_from_db; ?>
</script>
次に、javascriptで必要なものを使用して、テキストvarをテキストボックスに入れます。
できない Javascriptのみでそれを行います。 DBとクライアント側コード間のプロキシとして機能するサーバー側コード(PHPの場合)が必要になります。