我是 HTML/Php/JavaScript 领域的绝对初学者。我正在尝试制作此页面:
- 包含文档标题的下拉列表
- 选择某些内容后,使用来自 PostgreSQL 的数据填充下面的输入字段以允许更新
- 提交按钮以使用用户更正的值更新数据库。
1 和 3 没问题(已经用仅插入形式尝试过)。
我的代码如下所示(经过简化,没有 dbconn):
echo "<select name='listedoc' size=1>";
while ($ligne = pg_fetch_array($result, null, PGSQL_ASSOC))
{
echo '<option value="'.$ligne['id_doc'].'">'.$ligne['doc_titre']. '</option>';
}
echo "</select>";
输入字段(简化,实际有4个字段):
<p><form name="saisiedoc" method="post" action="docupdins.php"></p>
<table border=0>
<tr><td>Texte</td>
<?php
echo '<td> <textarea name="content" cols="100" rows="30"></textarea> </td>';
?>
</tr><tr>
<td colspan=2>
<input type=submit value="Valider la saisie" name="maj"> </td>
</tr>
</table>
</form>'
然后是 JQuery 脚本:
<script>
$(document).ready(function(){
$("select#listedoc").change(function () {
var id = $("select#listedoc option:selected").attr('value');
$.post("docsel.php", {id:id},function(data) {
});
});
</script>
选择字段的 php (docsel.php):
<?php
include('../scripts/pgconnect.php');
$iddoc = $_POST['id'];
$sql="SELECT * FROM document where id_doc = $iddoc";
$result = pg_query($db, $sql);
if (!$result) {
echo "ERREUR<br>\n";
exit;}
$row = pg_fetch_row($result);
$doctyp = $row[1];
$doctitre = $row[2];
$docauteur = $row[3];
$doccontent =$row[4];
pg_free_result($result);
pg_close($db);
}
?>
无论我做什么,我都无法取回值。我在输入中尝试了 value="'.$doctitre'"
,
echo $doctitre
,无济于事。我的代码逻辑是否正确?谢谢你的帮助
最佳答案
你很接近。脚本 docsel.php 需要将数据返回到 html 页面。 你已经设置好在回调函数中接收数据
$.post("docsel.php", {id:id},function(data) {
$('textarea[name="content"]').text(data.content);
});
为了在 data.content 中有一些东西,php 脚本发送 json 数据:
$result = [];
$result['content'] = $doccontent;
echo json_encode($result);
也许您需要阅读有关 $.post 和 json_encode 的文档...祝您好运。
关于php - 在选择更改时使用数据库数据填充输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353969/