我正在尝试创建一个更新表单,其中用户选择一个 ID,表单的其余部分会自动填充该 ID 的相应数据,这将使更新非常简单,显然我必须使用 AJAX,但我真的必须在 PHP 中编写一个完整的表单代码并将其返回到单个语句中,然后在单个 innerHTML 中分配它吗?
是否可以将 php 文件返回的任何内容作为 javascript 运行,这样我就可以编写一个迷你脚本来单独设置每个元素的内部 HTML,而不必重新加载整个表单的 HTML 代码,只需加载表单元素中的值?
<?php
$myname = "test";
$myage = 22;
echo
'<script>
document.getElementById("name").innerHTML = "$myname";
document.getElementById("age").innerHTML = "$myage";
</script>';
?>
PS 我没有 AJAX 的经验,我只能找到用于返回 PHP 脚本输出的 xmlhttp.responseText。
最好返回以某种形式(例如:JSON)结构化的数据,然后使用 JavaScript 处理它。
例如,不要返回要返回的内容,而是执行以下操作:
<?php
$to_return = array(
"name" => "test",
"age" => 22
);
echo json_enconde($to_return);
然后在您的页面上,解析您的响应并处理它:
data = JSON.parse(response);
document.getElementById("name") = data.name;
document.getElementById("age") = data.age;
如果你想进一步标准化它,你可以返回如下内容:
[
{
"target": "name",
"value": "test"
},
{
"target": "age",
"value": 22
}
]
并创建一个这样的函数:
function populateForm(data) {
for (var x = 0; x < data.length; x++) {
document.getElementById(data[x].target).innerHTML = data[x].value;
}
}
然后使用 PHP 的 JSON 响应调用该函数。
我会重新命令在服务器端返回一个数组(处理 ajax 请求的 php)。 在浏览器端,从服务器获得响应后,您可以设置
document.getElementById("name").innerHTML = $myname;
document.getElementById("age").innerHTML = $myage;