我有一个动态构建html页面的JavaScript。在html页面中有用于输入信息的textarea框。信息已经存在于数据库中。我想用mysql数据库中的数据库填充textarea框。 我有PHP代码将连接到数据库并构建一个带有数据的html表,所以我知道如何使用PHP,但我不知道如何从javascrip这样做。我已经研究了ajax get requests等,但我仍然不确定如何做到这一点。
答案 0 :(得分:20)
可能最简单的方法是让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
属性中。
答案 1 :(得分:1)
使用javascript你可以做这样的事情:
<script type="Text/javascript">
var text = <?= $text_from_db; ?>
</script>
然后,您可以在javascript中使用任何内容将text var放入文本框中。
答案 2 :(得分:1)
你真的需要从javascript“构建”它,还是只需从PHP返回构建的HTML并将其插入到DOM中?
答案 3 :(得分:0)
你不能只使用Javascript。您需要一些服务器端代码(在您的情况下为PHP),它充当数据库和客户端代码之间的代理。