public function saveAction() { $typeClientForm = new Admin_Model_ClientForm(); $clientFormKey = $this->getParam('key'); $clientFormKeyArray = isset($_POST['frmb']) ? $_POST : false; if ($clientFormKeyArray != false) { K_Loader::load('formbuilder', APP_PATH . '/plugins'); //сохраняем поля дополнительной формы $Xform['type'] = 'xform'; $Xform['values']['admin_email'] = $_POST['admin_email']; $Xform['values']['ck_admin_email'] = $_POST['ck_admin_email'] ? true : false; $Xform['values']['ck_client_email'] = $_POST['ck_client_email'] ? true : false; $Xform['values']['ck_save_db'] = $_POST['ck_save_db'] ? true : false; $Xform['values']['client_email_field_name'] = $_POST['client_email_field_name']; $Xform['values']['client_email_ck_name'] = $_POST['client_email_ck_name']; $Xform['values']['client_mail_tmp'] = $_POST['client_mail_tmp']; $Xform['values']['admin_mail_tmp'] = $_POST['admin_mail_tmp']; $clientFormKeyArray['frmb'][] = $Xform; $form_builder = new Formbuilder($clientFormKeyArray); $form_array = $form_builder->get_encoded_form_array(); //$form_array $form_data = array('type_clientform_id' => $clientFormKey, 'type_clientform_content' => serialize($form_array)); $typeClientForm->save($form_data); } $this->putAjax('OK'); }
/** * Save the data to the database, but still returns the $for_db array. */ public function save_form() { $for_db = parent::get_encoded_form_array(); if ($for_db['form_id']) { $stmt = $this->_db->prepare("UPDATE fb_savedforms SET form_structure = :struct WHERE id = :id"); $stmt->bindParam(':id', $for_db['form_id'], PDO::PARAM_INT); } else { $stmt = $this->_db->prepare("INSERT INTO fb_savedforms (form_structure) VALUES (:struct)"); } $stmt->bindParam(':struct', $for_db['form_structure'], PDO::PARAM_STR); $stmt->execute(); }
public function saveAction() { $form_key = $this->getParam('key'); $type_form = new Admin_Model_Form(); $form_key = $this->getParam('key'); $form_post_array = isset($_POST['frmb']) ? $_POST : false; if ($form_post_array != false) { K_Loader::load('formbuilder', APP_PATH . '/plugins'); $form_builder = new Formbuilder($form_post_array); $form_array = $form_builder->get_encoded_form_array(); $form_data = array('type_form_id' => $form_key, 'type_form_content' => serialize($form_array)); $type_form->save($form_data); } $this->putAjax('OK'); }
public static function salvar() { $objetoFormulario = new Formulario(); $objetoFormulario->selecionarPorId($_GET['id']); $form = new Formbuilder($_POST); $html = $form->generate_html(Configuracao::$baseUrl . '../salvar.html'); $json = json_encode($form->get_encoded_form_array()); $dom = new DOMDocument('1.0', 'utf-8'); $dom->loadHTML(mb_convert_encoding($html, 'html-entities', 'utf-8')); $formulario = $dom->getElementsByTagName('form')->item(0); $ol = $dom->getElementsByTagName('ol')->item(0); $inputHidden = $dom->createElement('input'); $inputHidden->setAttribute('type', 'hidden'); $inputHidden->setAttribute('name', 'id_evento'); $inputHidden->setAttribute('value', $objetoFormulario->fkEvento); $formulario->insertBefore($inputHidden, $ol); //$inputHidden = $dom->createElement('input'); //$inputHidden->setAttribute('type', 'hidden'); //$inputHidden->setAttribute('name', 'id_ingresso'); //$inputHidden->setAttribute('value','$INGRESSO'); //$formulario->insertBefore($inputHidden, $ol); $inputHidden = $dom->createElement('input'); $inputHidden->setAttribute('type', 'hidden'); $inputHidden->setAttribute('name', 'id_formulario'); $inputHidden->setAttribute('value', $_GET['id']); $formulario->insertBefore($inputHidden, $ol); $inputHidden = $dom->createElement('input'); $inputHidden->setAttribute('type', 'hidden'); $inputHidden->setAttribute('name', 'passo_ordem'); $inputHidden->setAttribute('value', $_GET['passo']); $formulario->insertBefore($inputHidden, $ol); //$inputHidden = $dom->createElement('input'); //$inputHidden->setAttribute('type', 'hidden'); //$inputHidden->setAttribute('name', 'quantidade_ingressos'); //$inputHidden->setAttribute('value','$QUANTIDADE'); //$formulario->insertBefore($inputHidden, $ol); $html = $formulario->ownerDocument->saveHtml(); $passo = new Passo(); $passo = $passo->getByFormularioPasso($_GET['id'], $_GET['passo']); $passo->html = $html; $passo->estrutura = $json; $passo->salvar(); $resposta = new stdClass(); $resposta->html = $html; echo @json_encode($resposta); }
<?php require 'Formbuilder/Formbuilder.php'; // At this stage, we want to pass in the POST value // containing the form. In this example we simply // pass POST directly, but DO NOT use POST without // proper security in place. // The get_encoded_form_array() method returns an array that should be // used to store the values in the database. This array // is also what's passed to the class when rendering // or editing the form. $form_data = isset($_POST['frmb']) ? $_POST : false; $form = new Formbuilder($form_data); $for_db = $form->get_encoded_form_array(); //------------------------------------------------------------------------------ // OR, you could use our database object with some database connection // information to automatically save everything to the database. // You could do that like so: //require('Formbuilder/Formbuilder_pdo.php'); //$form_data = isset($_POST['frmb']) ? $_POST : false; //$form = new Formbuilder_pdo($form_data); //$form->connect(); //$form->save_form(); //------------------------------------------------------------------------------ // Here's the example output of get_encoded_form_array() print_r($for_db); //Array //( // [form_id] => 1 // [form_structure] => [{"cssClass":"input_text","required":"undefined","values":"First Name"},{"cssClass":"input_text","required":"undefined","values":"Last Name"},{"cssClass":"textarea","required":"undefined","values":"Bio"},{"cssClass":"checkbox","required":"undefined","title":"What's on your pizza?","values":{"2":{"value":"Extra Cheese","baseline":"undefined"},"3":{"value":"Pepperoni","baseline":"undefined"},"4":{"value":"Beef","baseline":"undefined"}}}] //)
public function updateAction() { $this->disableRender = true; $typesTable = new K_Tree_Types_Model(); $typeId = $this->getParam('id'); $types = $typesTable->select()->where('`type_id`=' . (int) $typeId)->fetchRow(); $types = $types->toArray(); $form = new K_Form(); $allowedkeys = array('type_desc', 'type_fields'); $values = array(); $formData = $form->getData(); $formPostArray = isset($_POST['type_fields']) ? $_POST['type_fields'] : false; parse_str(substr($_POST['type_fields'], 1), $formPostArray); if ($formPostArray != false) { K_Loader::load('formbuilder', APP_PATH . '/plugins'); $formBuilder = new Formbuilder($formPostArray); $formArray = $formBuilder->get_encoded_form_array(); } else { throw new Exception("Не заданы поля для нового типа!"); } if (!$formData) { throw new Exception("Невозможно обработать форму без данных!"); } foreach ($formData as $elementKey => $elementValue) { if (in_array($elementKey, $allowedkeys)) { if (is_string($elementValue)) { $elementValue = trim($elementValue); } $values[$elementKey] = $elementValue; if ($elementKey == 'type_fields' && json_decode($formArray['form_structure']) == null && !empty($formArray['form_structure'])) { throw new Exception("Поля переданы не в json-формате! " . json_last_error()); } } } K_Tree_Types::update($types['type_name'], $values['type_desc'], $formArray['form_structure'], $formArray); echo 'Тип успешно обновлён!'; }