【问题标题】:Js serialize() and adding data into databaseJs serialize() 并将数据添加到数据库中
【发布时间】:2014-10-02 08:18:12
【问题描述】:

我从表单中获取数据

var form_data =  $('#form').serialize();

例如我得到结果 name=bill&age=133&gender=male

然后这个数据通过 ajax 发送到控制器

 $.ajax({
                            type: "POST",
                            url: "<?php echo base_url().'admin/crud/change_table_data2'?>",
                            data: { 'form_data' : form_data},
                            dataType: "json",
                            success: function(response)
                            {  
                            alert(response);
                            } 
                    })

在控制器中我尝试这个,并将数据发送到模型,在那里我尝试将数据插入数据库

parse_str($_POST['form_data'], $add_array);  //parse form inputa koji za koje je koriscenja js f-ja serialize()

            $this->load->model('Data');
            $query = $this->Data->ajax_add($add_array);

我的问题是不知何故,当我使用 print_r($add_array) 时,我在页面上没有结果或在 ajax 中的成功部分,所以我看不到数组的结构,我无法弄清楚错误在哪里,有人可以给我写 foreach name=bill&amp;age=133&amp;gender=male类似这个数组

public function ajax_add($add_array)
    { 
       foreach($add_array as $s)
       {
            foreach($s as $x)
            {
                (string)$data_sanitazed = htmlentities(mysql_real_escape_string($x));
                $data_insert = array('info' => $data_sanitazed);
                $query = $this->db->insert('ci_crud', $data_insert);  
            } 
       }
        return $query;             
    }

差异在这里我只有一个列,后来我又添加了两个

【问题讨论】:

    标签: javascript php ajax


    【解决方案1】:

    不,您不需要将其放入另一个父持有人中。直接使用该序列化输入:

    var form_data = $('#form').serialize();
     $.ajax({
        type: "POST",
        url: "<?php echo base_url().'admin/crud/change_table_data2'; ?>",
        data: form_data, // you can use it directly (name=bill&age=133&gender=male)
        // dataType: "json", also commenting this worked for the OP as well.
        success: function(response) {  
            alert(response);
        } 
    });
    

    所以在PHP中,你可以在post里面使用它们,不需要使用parse_str()

    $_POST['name'] // directly access them
    $_POST['age']
    $_POST['gender']
    

    【讨论】:

    • 问题是因为我把 dataType: "json",
    • 在您的回答中只添加一条评论 json 行
    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2018-01-22
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多