我正在尝试创建一个更新表单,用户选择一个ID,表单的其余部分会自动填充相应的ID数据,这样可以使更新变得非常简单,显然我必须使用AJAX但是我是否真的必须在PHP中编写完整的表单代码并将其返回到单个语句中,然后将其分配到单个innerHTML中?
是否可以将php文件中的任何返回值作为javascript运行,这样我就可以编写一个迷你脚本来自行设置每个元素的innerHTML,而无需重新加载整个表单的HTML代码,只需表单元素中的值?
<?php
$myname = "test";
$myage = 22;
echo
'<script>
document.getElementById("name").innerHTML = "$myname";
document.getElementById("age").innerHTML = "$myage";
</script>';
?>
PS我没有AJAX的经验,我只能找到xmlhttp.responseText来返回PHP脚本的输出。
答案 0 :(得分:1)
如果您返回以某种形式构建的数据(例如: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响应调用该函数。
答案 1 :(得分:0)
我建议在服务器端返回一个数组(处理ajax请求的php)。在您从服务器获得响应后,在浏览器端然后设置
document.getElementById("name").innerHTML = $myname;
document.getElementById("age").innerHTML = $myage;