Php 如何在表单中显示从数据库获取的数据

Php 如何在表单中显示从数据库获取的数据,php,javascript,ajax,Php,Javascript,Ajax,$//首先,我发送执行sql查询的php代码。该代码执行查询以从数据库获取数据,并将所有数据存储在get_row1中,并将其作为响应发送到ajax$ <?php $connect = mysql_connect("localhost", "root", ""); $data = mysql_select_db("testme", $connect); $identity = $_REQUEST['id']; $query = "SELECT * FROM

$//首先,我发送执行sql查询的php代码。该代码执行查询以从数据库获取数据,并将所有数据存储在get_row1中,并将其作为响应发送到ajax$

<?php 
    $connect = mysql_connect("localhost", "root", "");
    $data = mysql_select_db("testme", $connect);
    $identity = $_REQUEST['id'];

    $query = "SELECT * FROM student_demo WHERE id=1";
    $getdata = mysql_query($query);

    $get_row1 = mysql_fetch_array($getdata);

    $data1 = array(
            $get_row1[0],
        $get_row1[1],
        $get_row1[2],
        $get_row1[3]
    );
    print_r($data1); 
?>

$//这会将$data1发送回ajax代码$

if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        alert(xmlhttp.responseText);
        temp1 = xmlhttp.responseText.split("=>");
        alert(temp1);
        for (var i = 0; i < 10; i++) {
        $('.data' + i).val(tmp1[i]);
            if (tmp[i] == "[0]") {
                document.getelementById("c_name").value = temp1[i];
            }
        }
    }
}

xmlhttp.open("GET", "process.php?id=" + ID, true);
xmlhttp.send();
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
警报(xmlhttp.responseText);
temp1=xmlhttp.responseText.split(=>);
警报(temp1);
对于(变量i=0;i<10;i++){
$('.data'+i).val(tmp1[i]);
如果(tmp[i]=“0]”){
document.getelementById(“c_名称”).value=temp1[i];
}
}
}
}
open(“GET”、“process.php?id=“+id,true”);
xmlhttp.send();

现在,为了从数组temp1中获取要在php代码的文本框$

中显示的值,我应该做哪些更改,您最好将响应编码为JSON:

data1=array($get_row1[0],
        $get_row1[1],
        $get_row1[2],
        $get_row1[3]);

json_encode($data1); 
然后,在JS代码中,您可以使用
JSON解析响应字符串。parse

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
  alert(xmlhttp.responseText);
    temp1=JSON.parse(xmlhttp.responseText);
    console.log(temp1); // this way you can see exact structure of an object in browser console
    var i;
    for(i=0;i<10;i++)
    {
        $('.data'+i).val(tmp1[i]); // not sure what is that. If you are already using jQuery, then you can do everything even simpler
        if(tmp[i]=="[0]")
        {
            document.getElementById("c_name").value=temp1[i]; // see here getElementById - javascript is case sensitive
        }
    }

}
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
警报(xmlhttp.responseText);
temp1=JSON.parse(xmlhttp.responseText);
console.log(temp1);//通过这种方式,您可以在浏览器控制台中查看对象的确切结构
var i;

for(i=0;iI可以看到您正在for循环中使用
$
,假设它的别名为
jQuery
为什么不使用
$.ajax()
?什么是tmp数组?你提到了temp,但你也有tmp。你在问如何正确解析来自ajax的响应?换句话说,如何将其转换为JS数组?一般来说,JS代码会向php页面执行请求,并按id获取打印的数据。你想将这些数据放在JS数组中吗?@2-Stroker我真的更喜欢jQuery而不是“普通”的ajax!