Php 如何从ajax在codeigniter中插入会话多数组

Php 如何从ajax在codeigniter中插入会话多数组,php,ajax,codeigniter,Php,Ajax,Codeigniter,表单输入 <form id='form'> <input type="text" name="nama" value=""> <input type="text" name="email" value=""> <input type="button" id='button' name="button" value="kirim"> </form> <div id='hasil'></d

表单输入

<form id='form'>
  <input type="text" name="nama" value="">      
  <input type="text" name="email" value="">     
  <input type="button" id='button' name="button" value="kirim">
</form>
<div id='hasil'></div>
$(document).on('click', '#button', function(event) {
  event.preventDefault();       
  var data = $('#form').serializeArray();
  $.ajax({
    data : {data : data},
    url:'data/test_ajax',
    method:'post',
    success:function (data_ajax){
      console.log(data_ajax);
    }
  });
});
发送到数据/测试\u ajax

public function test_ajax(){
    $data = $this->input->post('data');

    $get_session = $this->session->userdata('data');
    for ($i=0; $i < 1000; $i++) { 
        if ($get_session[$i]=="") {
            $dat['data'][$i]['nama'] = $data[0]['value'];
            $dat['data'][$i]['email'] = $data[1]['value'];
            $set_session = $this->session->set_userdata($dat);
            break;
        }
    }

    $get_session = $this->session->userdata('data');
    print_r($get_session);
}
public function test\u ajax(){
$data=$this->input->post('data');
$get_session=$this->session->userdata('data');
对于($i=0;$i<1000;$i++){
if($get_session[$i]==“”){
$dat['data'][$i]['nama']=$data[0]['value'];
$dat['data'][$i]['email']=$data[1]['value'];
$set\u session=$this->session->set\u userdata($dat);
打破
}
}
$get_session=$this->session->userdata('data');
打印(获取会话);
}
如何使用
codeigniter
ajax
每次添加数据插入会话, 结果如下:

[0]=>阵列 ( [nama]=>测试 [电子邮件]=>测试 )

[1] =>阵列 ( [nama]=>testtt [电子邮件]=>testttt )

[2] =>阵列 ( [nama]=>aaa [电子邮件]=>aaaaa )

[3] =>阵列 ( [nama]=>aa [电子邮件]=>SDFAAAAASDSFSF )


我不知道codeinteger是如何获取/设置用户数据的,但是试试这个

$get_session = $this->session->userdata('data');
$get_session[] = Array('nama'=>$data[0]['value'], 'email' => $data[1]['value']);
$set_session = $this->session->set_userdata('data',$get_session);
将数据传递给脚本的最安全的方法是

var datastring = $("#form").serialize();
    $.ajax({
        type: "POST",
        url: "your url.php",
        data: datastring,
        success: function(data) {
             alert('Data send');
        }
    });

检查实际会话数据,但用新值覆盖它。为什么要在新行数组中覆盖新值@BATO3您可能想删除按钮上的name属性,因为我认为您不想/不需要
$\u POST['button]='kirim'
@maxing认为这似乎是正确的答案。如果您满意,请将其授予绿色勾号,以便将您的问题从未回答问题列表中删除。如果这个答案不完全符合您的需要,请为bato3留下评论。