commit
This commit is contained in:
parent
f944a7637c
commit
21213a9f21
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class New_form_controller extends CI_Controller {
|
||||
|
||||
public function submit_form() {
|
||||
// no need to decode the data
|
||||
$formData = $this->input->post('formData');
|
||||
|
||||
|
||||
$formId = $this->session->userdata('form_id');
|
||||
if ($formId) {
|
||||
// Save questions and options associated with the form_id
|
||||
$this->load->model('new_form_model');
|
||||
$this->new_form_model->save_form_data($formId, $formData);
|
||||
|
||||
echo json_encode(['status' => 'success', 'message' => 'Form data submitted successfully']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Failed to submit form data']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
|
@ -1,20 +0,0 @@
|
|||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Your_controller extends CI_Controller
|
||||
{
|
||||
|
||||
public function getFormId()
|
||||
{
|
||||
// Check if user is logged in and get user_id from session
|
||||
$user_id = $this->session->userdata('user_id');
|
||||
|
||||
// Query to fetch form_id from database based on user_id
|
||||
$form_id = $this->your_model->getFormIdByUserId($user_id); // Replace with your actual model method
|
||||
|
||||
// Return form_id as JSON response
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode(array('form_id' => $form_id)));
|
||||
}
|
||||
}
|
|
@ -1,11 +1,8 @@
|
|||
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
class Create_model extends CI_Model {
|
||||
|
||||
class Create_model extends CI_Model
|
||||
{
|
||||
public function details()
|
||||
{
|
||||
public function details() {
|
||||
// Retrieve user_id from session
|
||||
$user_id = $this->session->userdata('user_id');
|
||||
|
||||
|
@ -18,7 +15,13 @@ class Create_model extends CI_Model
|
|||
|
||||
// Insert data into forms table
|
||||
$this->db->insert('forms', $data);
|
||||
}
|
||||
}
|
||||
|
||||
// Store form_id in session
|
||||
$formId = $this->db->insert_id();
|
||||
$this->session->set_userdata('form_id', $formId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
class New_form_model extends CI_Model {
|
||||
|
||||
public function save_form_data($formId,$formData) {
|
||||
if (!$formId) {
|
||||
return false; // Handle error if formId is not valid
|
||||
}
|
||||
foreach ($formData['questions'] as $question) {
|
||||
$questionData = [
|
||||
'form_id' => $formId,
|
||||
'text' => $question['text'],
|
||||
'type' => $question['type'],
|
||||
'required' => ($question['required'] == 'true') ? 0 : 1
|
||||
];
|
||||
|
||||
$this->db->insert('questions', $questionData);
|
||||
$questionId = $this->db->insert_id(); // Get the inserted question_id
|
||||
|
||||
foreach ($question['options'] as $option) {
|
||||
$optionData = [ 'question_id' => $questionId,
|
||||
'option_text' => $option];
|
||||
|
||||
// Insert option into options table
|
||||
$this->db->insert('options', $optionData);
|
||||
}
|
||||
}
|
||||
|
||||
return true; // Return true indicating success
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
?>
|
|
@ -1,19 +0,0 @@
|
|||
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Your_model extends CI_Model {
|
||||
public function getFormIdByUserId($user_id)
|
||||
{
|
||||
$this->db->select('form_id');
|
||||
$this->db->where('user_id', $user_id);
|
||||
$query = $this->db->get('forms'); // Replace 'your_forms_table' with your actual table name
|
||||
|
||||
if ($query->num_rows() > 0) {
|
||||
$row = $query->row();
|
||||
return $row->form_id;
|
||||
} else {
|
||||
return null; // Handle case when form_id is not found
|
||||
}
|
||||
}
|
||||
}
|
|
@ -35,6 +35,9 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
var base_url = '<?php echo base_url(); ?>';
|
||||
</script>
|
||||
<nav class="navbar navbar-inverse navbar-custom">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
|
|
|
@ -228,16 +228,39 @@ K });
|
|||
positionAddSectionButton();
|
||||
}
|
||||
});
|
||||
function collectFormData() {
|
||||
var formData = {
|
||||
questions:[]
|
||||
};
|
||||
|
||||
$('.form-section').each(function() {
|
||||
var questionData = {
|
||||
text : $(this).find('.untitled-question').val(),
|
||||
type : $(this).find('.custom-select').val(),
|
||||
required :$(this).find('.required-toggle').is(':checked'),
|
||||
options:[]
|
||||
};
|
||||
|
||||
|
||||
$(this).find('.option-label').each(function() {
|
||||
questionData.options.push($(this).val());
|
||||
});
|
||||
|
||||
formData.questions.push(questionData);
|
||||
|
||||
});
|
||||
console.log(formData);
|
||||
return formData;
|
||||
}
|
||||
$('#submit-btn').on('click', function() {
|
||||
let formData = collectFormData();
|
||||
console.log(formData);
|
||||
|
||||
$.ajax({
|
||||
url: '<?php echo base_url(); ?>form/submit',
|
||||
url: base_url + 'New_form_controller/submit_form',
|
||||
type: 'POST',
|
||||
data: JSON.stringify(formData),
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: {formData:formData},
|
||||
dataType: 'JSON',
|
||||
success: function(response) {
|
||||
alert('Form submitted successfully!');
|
||||
console.log(response);
|
||||
|
@ -249,32 +272,6 @@ K });
|
|||
});
|
||||
});
|
||||
|
||||
function collectFormData() {
|
||||
let formData = [];
|
||||
|
||||
// let formId = $('#form-id').val();
|
||||
|
||||
$('.form-section').each(function() {
|
||||
let questionText = $(this).find('.untitled-question').val();
|
||||
let type = $(this).find('.custom-select').val();
|
||||
let required = $(this).find('.required-toggle').is(':checked');
|
||||
let options = [];
|
||||
|
||||
$(this).find('.option-label').each(function() {
|
||||
options.push($(this).val());
|
||||
});
|
||||
|
||||
formData.push({
|
||||
// form_id: formId,
|
||||
text: questionText,
|
||||
type: type,
|
||||
required: required,
|
||||
options: options
|
||||
});
|
||||
});
|
||||
|
||||
return formData;
|
||||
}
|
||||
|
||||
$('#form-container').disableSelection();
|
||||
});
|
Loading…
Reference in New Issue