在AJAX请求中从MySQL数据库中获取大数据

时间:2014-05-25 17:56:54

标签: php mysql ajax codeigniter

我正在构建一个使用Ajax的PHP应用程序。

我正在使用的Ajax代码是

    function getdetails(id){
var xhr;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

xhr.onreadystatechange = function(){
    if(xhr.readyState==4 && xhr.status==200){
        document.getElementById("updateform").innerHTML=xhr.responseText;
    }
}

xhr.open("GET","get_details?id="+id+"&table="+'<?php echo $table_name ?>',true);
xhr.send();
}

处理此问题的PHP函数是

public function get_details(){
        $id = $_GET['id'];
        $table = $_GET['table'];
        $query = $this->db->get_where($table,array('id'=>$id));
        if($query){
            $row = $query->row();
            echo form_open('members/update_detail');
            foreach ($row as $key => $value) {
                echo $key.'     <input type="text" name='.$key.' value='.$value.'><br>';
            }
            echo '</form>';
        }

        //echo $_GET['id'];
    }

我已经定义了一个id为“updateform”的div。代码在获取数据的意义上工作正常。但是,它不会获取整个数据。例如:在VARCHAR(200)字段中,如果我存储 Stack Overflow ,则仅显示堆栈

我的获取数据的方法是错误的吗?

1 个答案:

答案 0 :(得分:2)

首先var_dump($row);并检查它是否符合您的预期。

然后代替

 echo $key.'     <input type="text" name='.$key.' value='.$value.'><br>';

echo $key.'<input type="text" name="'.$key.'" value="'.$value.'"><br>';

因为您错过了namevalue

的html输出中的引号