J'ai un javascript qui construit dynamiquement une page HTML. La page html contient des zones de texte dans lesquelles l'utilisateur peut saisir des informations. Ces informations existent déjà dans une base de données. Je voudrais peupler les zones textarea avec la base de données dans la base de données mysql . J'ai un code php qui va se connecter à la base de données et construire une table html avec les données, donc je sais comment faire cela avec php Je ne sais pas comment faire cela depuis le javascrip. J'ai étudié les demandes d'ajax get, etc., mais je ne sais toujours pas comment faire cela.
La manière la plus simple de le faire est probablement de renvoyer un fichier JSON par un fichier php. Alors disons que vous avez un fichier 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);
Si vous êtes contraint d'utiliser document.write (comme vous le notez dans les commentaires ci-dessous), attribuez à vos champs un identifiant id comme suit: <input type="text" id="field1" />
. Vous pouvez référencer ce champ avec cette jQuery: $("#field1").val()
.
Voici un exemple complet avec le HTML. Si nous supposons que vos champs s'appellent field1
et field2
, alors
<!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>
C'est l'insertion après la construction du HTML, ce qui pourrait être plus facile. Si vous souhaitez peupler des données pendant la construction dynamique du code HTML, vous souhaitez tout de même que le fichier PHP renvoie le code JSON, vous devez simplement l'ajouter directement dans l'attribut value
.
Avez-vous vraiment besoin de le "construire" à partir de javascript ou pouvez-vous simplement renvoyer le code HTML construit à partir de PHP et l'insérer dans le DOM?
Pour faire avec javascript, vous pouvez faire quelque chose comme ceci:
<script type="Text/javascript">
var text = <?= $text_from_db; ?>
</script>
Vous pouvez ensuite utiliser ce que vous voulez dans votre javascript pour mettre le texte var dans la zone de texte.
Vous ne pouvez pas le faire avec Javascript seulement. Vous aurez besoin d'un code côté serveur (PHP, dans votre cas) qui sert de proxy entre la base de données et le code côté client.