Select the values received from the matrix via POST (Codeigniter)

Asked

Viewed 15 times

1

I have the following:

-- HTML --
<form class="" id="quiz_form" action="" method="post">
   <input type="checkbox" name="mcq-<?php echo $quiz_question['id']; ?>[]" value="<?php echo $key2+1; ?>">
   <input type="checkbox" name="discursive-<?php echo $quiz_question['id']; ?>[]" value="<?php echo $key2+1; ?>">
   <input type="button" onclick="submitQuiz()">
</form>

function submitQuiz() {
    $.ajax({
        url: 'home/submit_av',
        type: 'post',
        data: $('form#quiz_form').serialize(),
        success: function(response) {
            $('#quiz-body').hide();
            $('#quiz-result').html(response);
        }
    });
}

-- Content php receive data post --
public function submit_av($from = "") {
        $data['question_mcq'] = json_encode($this->input->post(NULL, TRUE));
        $data['question_discursive'] = json_encode($this->input->post(NULL, TRUE));
        $this->db->insert('av_results', $data);
    }

In the database is saving so:

{"discursive-8":["My answer 1"],"mcq-7":["1"],"discursive-9":["My answer 2"]}

I need to separate these arrays and place them in their respective fields.

How can I identify inside json_encode if it is" mcq "or" discursive "?

I need to save this way:

Column: question_mcq

{"mcq-7":["1"]}

Column: question_discursive

{"discursive-8":["My answer 1"],"discursive-9":["My answer 2"]}

It is important to remember that values name and value input are not the same, they change within a foreach.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.