使用 AJAX 使用 PHP 编辑 HTML 表单


editing an html form with php using ajax

我正在尝试创建一个更新表单,其中用户选择一个 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;