|
Posted by Lex Luthor on 10/12/06 07:40
Thank you for your answer, I've resolved my first problem (That's "modiyfing
two tables with only one form, this is the way "
[code]
<?php
require_once('DB/DataObject/FormBuilder.php');
require_once("PEAR.php");
define("DB_DATAOBJECT_NO_OVERLOAD",true); /* This is needed for some buggy
versions of PHP4 */
require_once("DB/DataObject.php");
$options = &PEAR::getStaticProperty('DB_DataObject','options');
// the simple examples use parse_ini_file, which is fast and efficient.
// however you could as easily use wddx, xml or your own configuration
array.
$config = parse_ini_file('dataObject.ini',TRUE);
// because PEAR::getstaticProperty was called with and & (get by reference)
// this will actually set the variable inside that method (a quasi static
variable)
$options = $config['DB_DataObject'];
////////////////////////////////////////////////////////////////////////////////////////////////////
DB_DataObject::debugLevel(1);
$first_table =& DB_DataObject::factory('tbl_menu_sx');
$first_table->fb_createSubmit = false;
$first_table->get(1);
$first_build =& DB_DataObject_FormBuilder::create($first_table);
//$first_build->elementNamePrefix = 'formOne';
$first_form = $first_build->getForm();
$second_table = DB_DataObject::factory('tbl_menu_sx_lang');
//$second_table->joinAdd($first_table); // add the product_image connectoin
$first_table->joinAdd($second_table); // add the product_image connectoin
$second_table->id_tbl_menu_sx=1;
$second_table->id_tbl_lingua=4;
$second_table->find();
$second_table->fetch();
$second_build =& DB_DataObject_FormBuilder::create($second_table);
$second_build->elementNamePrefix = 'formTwo';
$second_build->useForm($first_form,false);
$second_form = $second_build->getForm();
if ($first_form->validate() && $second_form->validate()) {
echo "[".$first_form->process(array(&$first_build,'processForm'),
false)."]";
$second_table->id_tbl_menu_sx = $first_table->id;
$second_table->id_tbl_lingua = 4;
echo "[".$second_form->process(array(&$second_build,'processForm'),
false)."]";
$first_form->freeze();
}
print $second_form->toHTML();
?>
[/code]
adding this line
$second_table->fetch();
and
if ($first_form->validate() && $second_form->validate()) {
echo "[".$first_form->process(array(&$first_build,'processForm'),
false)."]";
$second_table->id_tbl_menu_sx = $first_table->id;
$second_table->id_tbl_lingua = 4;
echo "[".$second_form->process(array(&$second_build,'processForm'),
false)."]";
$first_form->freeze();
}
Now I' ve another problem, I should have a field that save a list as
1,5,11,57 but in the same time it could show many checkboxes. I'm trying to
modify this code:
[code]
<?php
class DataObjects_Tbl_menu_sx extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'tbl_menu_sx'; // table name
public $id; // int(11) not_null
primary_key unique_key auto_increment
public $pub; // int(1) unsigned
public $nome; // string(50)
public $id_padre; // int(11) unsigned
public $checkbox_intention; // string(100)
public $posizione; // int(11)
public $checkbox_tbl_gruppi; // string(200)
public $checkbox_tbl_service; // string(200)
public $img; // string(100)
public $extra_link; // string(200)
/* Static get */
function staticGet($k,$v=NULL) { return
DB_DataObject::staticGet('DataObjects_Tbl_menu_sx',$k,$v); }
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
//var $fb_hidePrimaryKey=false;
///*
function preGenerateForm(&$fb) {
$box=array();
$box[]=&
HTML_QuickForm::createElement('advcheckbox','checkbox_intention',null,
'0',null,'0');
$box[]=&
HTML_QuickForm::createElement('advcheckbox','checkbox_intention',null,
'1',null,'1');
$box[]=&
HTML_QuickForm::createElement('advcheckbox','checkbox_intention',null,
'2',null,'2');
$this->fb_preDefElements['checkbox_intention'] = $box;
}
}
[/code]
I hope that you could help me, thank you very much
Navigation:
[Reply to this message]
|