使用 ajax 使用 php 编辑 html 表单

editing an html form with php using ajax

我正在尝试创建一个更新表单,用户在其中选择一个 ID,表单的其余部分会自动填充该 ID 的相应数据,这将使更新变得非常简单,显然我必须使用AJAX 但我真的必须在 PHP 和 return 中用一条语句编写整个表单代码,然后在单个内部 HTML 中分配它吗?

是否可以 运行 php 文件中的任何 return 作为 javascript,这样我就可以编写一个迷你脚本来设置每个元素的内部 HTML 本身,而不必重新加载整个表单的 HTML 代码,只是表单元素内的值?

<?php
$myname = "test";
$myage = 22;
echo 
'<script>
document.getElementById("name").innerHTML = "$myname";
document.getElementById("age").innerHTML = "$myage";
</script>';
?>

PS 我没有 AJAX 的经验,我只能找到 xmlhttp.responseText 用于 returning PHP 脚本的输出。

我会在服务器端向 return 推荐一个数组(处理 ajax 请求的 php)。在从服务器获得响应后,在浏览器端进行设置 document.getElementById("name").innerHTML = $myname; document.getElementById("age").innerHTML = $myage;

如果您return以某种形式构建数据(例如:JSON),然后用JavaScript处理它会更好。

例如,不要像您 returning 那样做:

<?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;

如果你想更标准化一点,你可以return像这样:

[
   {
       "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 响应调用该函数。