使用ajax用php编辑html表单

时间:2015-01-30 17:20:26

标签: php html ajax forms

我正在尝试创建一个更新表单,用户选择一个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脚本的输出。

2 个答案:

答案 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;