使用 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 响应调用该函数。
我正在尝试创建一个更新表单,用户在其中选择一个 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 响应调用该函数。