通过ajax从数据库填写表单字段

时间:2017-05-22 05:09:08

标签: javascript php jquery ajax codeigniter

我正在尝试通过ajax jquery从数据库填充表单字段。 我使用Codeigniter。 我可以检索数据库值并将其作为此图像提醒数组。 alert of the data array 我的问题是如何通过JavaScript访问这个PHP数组值? 我想用js从这个数组填充表单字段。 感谢帮助:)

这是我的Javascript

 $("#header3").on("click", ".edit_button", function(e) {
        var site_path = $('#sitePath').val();
        e.preventDefault();
        var clickedID = this.id.split('_'); //Split ID string
        var DbNumberID = clickedID[1]; //and get number from array
        var myData = DbNumberID; //build a post data structure
        //getting data for the form from accuse table
        $.ajax({
            url:site_path +'/queries/get_data_form3',
            method:'POST',
            data:{myData:myData},

            success:function(data12)
            {
             alert(data12);
            }
            ,
            error:function (xhr, ajaxOptions, thrownError){
                //On error, we alert user
                alert(thrownError);
            }
        })
    });

这是我的控制器代码

 public function get_data_form3(){
        $insert_id =  $this->input->post('myData');
        $this->load->model('queries1');
         if( $posts_form3=  $this-> queries1 ->getPostsFor_form3i($insert_id) ) {
               print_r($posts_form3);
         }else{
             echo "failed";
         }
    }

3 个答案:

答案 0 :(得分:1)

在服务器端返回这样的数据而不是print_r($ posts_form3);

 echo json_encode($posts_form3);

像这样访问客户端的数据

 success:function(data12)
        {
         var datas = JSON.parse(data12);

          console.log(datas[0]['name']);
        }

像这样访问数据

  datas[0]['name']; datas[0]['address']; datas[0]['sex'];

答案 1 :(得分:1)

而不是print_r($posts_form3);使用:

echo json_encode($posts_form3); 
来自get_data_form3(){函数的

并在ajax中接收它:

success:function(data12)
{
    var data = JSON.parse(data12);
}

您可以访问数据中的所有元素,如:

data[0].columndata[0][column]

答案 2 :(得分:1)

您需要以JSON格式传递数据以获取ajax中的数据。请使用以下代码替换您的代码。

$("#header3").on("click", ".edit_button", function(e) {
        var site_path = $('#sitePath').val();
        e.preventDefault();
        var clickedID = this.id.split('_'); //Split ID string
        var DbNumberID = clickedID[1]; //and get number from array
        var myData = DbNumberID; //build a post data structure
        //getting data for the form from accuse table
        $.ajax({
            url:site_path +'/queries/get_data_form3',
            method:'POST',
            data:{myData:myData},

            success:function(data12)
            {
             var getData = JSON.parse(data12);
             console.log(getData);
            }
            ,
            error:function (xhr, ajaxOptions, thrownError){
                //On error, we alert user
                alert(thrownError);
            }
        })
    });

以下是php代码。

public function get_data_form3(){
        $insert_id =  $this->input->post('myData');
        $this->load->model('queries1');
         if( $posts_form3=  $this-> queries1 ->getPostsFor_form3i($insert_id) ) {
               echo json_encode($posts_form3);
         }else{
             echo "failed";
         }
    }