2

I use formData to sent some data via AJAX.

//DATA KANDIDAT
var data_kandidat   = $(".data-kandidat").serializeArray();
                        
//DATA KELUARGA
var data_keluarga   = $(".data-kandidat-keluarga").serialize();
                        
var regist_data     = new FormData();
                      
    regist_data.append("data_kandidat",JSON.stringify(data_kandidat));
    regist_data.append("data_keluarga",data_keluarga);
    regist_data.append("<?php echo $this->security->get_csrf_token_name(); ?>",csrfHash);
                        
    $.ajax({ url         : url,                     
             type        : 'POST',
             data        : regist_data,
             cache       : false,
             contentType : false,                       
             processData : false,
             async       : true,
             dataType    : 'JSON',
             beforeSend  : function(){
                                
                              $("#loading-div").removeAttr("class");
                              $("#loading-div").addClass("overlay overlay-on");
                           }
             })
            .done(function(data){
                            
               alert("SUCCESS");
                            
             })
            .fail(function(jqXHR, textStatus, errorThrown){
                            
               alert("FAIL");
             });

I loop it in PHP Controller:

$details     = $this->input->post('data_keluarga');
$ct_keluarga = 0;

foreach($details as $rows ){
            
   $dataadd    = array ( 'KANDIDAT_ID'      => $ins_kandpribadi,
                         'KELUARGA_NAMA'    => $rows['i_keluarga_nama'],
                         'KELUARGA_STATUS'  => $rows['i_keluarga_status'],
                         'KELUARGA_KONTAK'  => $rows['i_keluarga_kontak'],
                         'DIFFERENTIATOR'   => 1,
                         'STATUS'           => 1
                       );

   $ins_kandkeluarga    = $this->model_insert->ins_kandidat_keluarga($dataadd);
            
   $ct_keluarga++;
}
        
$ret_message = $this->input->post('data_keluarga');

This is what I get when I check the data retrieved:

echo $this->input->post('data_keluarga');
'arr_keluarga%5B0%5D%5Bi_keluarga_nama%5D=Rayna&arr_keluarga%5B0%5D%5Bi_keluarga_status%5D=Istri&arr_keluarga%5B0%5D%5Bi_keluarga_kontak%5D=23523526&arr_keluarga%5B1%5D%5Bi_keluarga_nama%5D=Anisa&arr_keluarga%5B1%5D%5Bi_keluarga_status%5D=Anak&arr_keluarga%5B1%5D%5Bi_keluarga_kontak%5D=121467867';

I used above code and somehow the values are not saved in DB. How do I properly loop it? Any help is greatly appreciated

3
  • do print_r of $details to share for more clarity ` $details = $this->input->post('data_keluarga');` Commented Jun 4, 2022 at 8:34
  • I would print the value of $dataadd before inserting, to make sure you have consistent data Commented Jun 4, 2022 at 8:37
  • @Sundar this is the data in controller 'arr_keluarga%5B0%5D%5Bi_keluarga_nama%5D=Rayna&arr_keluarga%5B0%5D%5Bi_keluarga_status%5D=Istri&arr_keluarga%5B0%5D%5Bi_keluarga_kontak%5D=23523526&arr_keluarga%5B1%5D%5Bi_keluarga_nama%5D=Anisa&arr_keluarga%5B1%5D%5Bi_keluarga_status%5D=Anak&arr_keluarga%5B1%5D%5Bi_keluarga_kontak%5D=121467867'; Commented Jun 4, 2022 at 8:45

1 Answer 1

3

you can use parse_str(string $string, array &$result) to unserialized serialized form data

code :-

$post_data = "arr_keluarga%5B0%5D%5Bi_keluarga_nama%5D=Rayna&arr_keluarga%5B0%5D%5Bi_keluarga_status%5D=Istri&arr_keluarga%5B0%5D%5Bi_keluarga_kontak%5D=23523526&arr_keluarga%5B1%5D%5Bi_keluarga_nama%5D=Anisa&arr_keluarga%5B1%5D%5Bi_keluarga_status%5D=Anak&arr_keluarga%5B1%5D%5Bi_keluarga_kontak%5D=121467867";

$data_array = array();
parse_str($post_data,$data_array);

var_dump($data_array);

result

array(1) {
  ["arr_keluarga"]=>
  array(2) {
    [0]=>
    array(3) {
      ["i_keluarga_nama"]=>
      string(5) "Rayna"
      ["i_keluarga_status"]=>
      string(5) "Istri"
      ["i_keluarga_kontak"]=>
      string(8) "23523526"
    }
    [1]=>
    array(3) {
      ["i_keluarga_nama"]=>
      string(5) "Anisa"
      ["i_keluarga_status"]=>
      string(4) "Anak"
      ["i_keluarga_kontak"]=>
      string(9) "121467867"
    }
  }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.