addElement('text','txtToken','Token Name: '); $rate_ele = $form->addElement('text','txtCallrate','Callrate : '); $form->addElement('text','txtNDCode','National Dialing Code : '); $form->addElement('text','txtLACode','Local Area Code : '); $form->addElement('text','txtType','Type : '); $form->addElement('text','txtZmp','Zone Metering Pulse : '); $form->addElement('text','txtName','Name : '); $form->addElement('submit','btnSubmit',ucfirst($_GET['action'])); //}}} //{{{ create rules $form->addRule('txtToken','*required','required'); $form->addRule('txtCallrate','*required','required'); $form->addRule('txtNDCode','*required','required'); //}}} //{{{ --- MAIN CODE --- switch($_GET['action']) { case 'add' : $form->addElement('header','hdrTop','Add New Group'); break; case 'delete' : case 'edit' : $zone_id = intval($_POST['zid']); $smarty_obj->assign('zid',$zone_id); //{{{ assign defaults from db $z_query="SELECT * FROM `zone` WHERE `zn_id`=?"; $z_st = $db->prepare($z_query); $z_res =$db->execute($z_st,array($zone_id)); if (handleError($z_res)) { $z_res->fetchInto($z_row); } $defaults = array( 'txtToken'=>$z_row['zn_channel_out'], 'txtCallrate'=>$z_row['zn_callrate'], 'txtNDCode'=>$z_row['zn_ndcode'], 'txtLACode'=>$z_row['zn_lacode'], 'txtType'=>$z_row['zn_type'], 'txtZmp'=>$z_row['zn_zmp'], 'txtName'=>$z_row['zn_name'] ); $form->setDefaults($defaults); //}}} if($_GET['action']=='delete') { $form->addElement('header','hdrTop','Delete Zone Entry'); $form->freeze(); } else { $form->addElement('header','hdrTop','Edit Existing Zone'); $token_ele->freeze(); $rate_ele->freeze(); } break; default : $smarty_obj = new SmartyQFWrapper('access_denied.tpl'); }//end of switch if($form->validate()) { $result= $form->process('process_data',false); $form->addElement('text','txtResult',$result); } $smarty_obj->display($form); //}}} /** * process_data * * callback function do all the processing for the form */ function process_data($args) { global $form; global $db; if ('Add'==$args['btnSubmit']) { $sel_query = "SELECT * FROM `zone` WHERE `zn_channel_out` = ? AND `zn_callrate` = ? AND `zn_ndcode` = ? AND `zn_lacode` = ?"; $data = array( $args['txtToken'], $args['txtCallrate'], $args['txtNDCode'], $args['txtLACode'] ); $sel_st = $db->prepare($sel_query); $sel_res = $db->execute($sel_st,$data); if(handleError($sel_res)) { if(0==$sel_res->numRows()) { $ins_query = "INSERT INTO `zone` (`zn_channel_out`, `zn_callrate`, `zn_ndcode`, `zn_lacode`, `zn_type`, `zn_zmp`, `zn_name`) VALUES (?,?,?,?,?,?,?)"; $data[] = $args['txtType']; $data[] = $args['txtZmp']; $data[] = $args['txtName']; $ins_st = $db->prepare($ins_query); $ins_res= $db->execute($ins_st,$data); if(handleError($ins_res)) { return "Zone inserted successfully"; } else { return "Unable to insert Zone!"; } } else { return "There is already a zone with those credentials."; } } else { return "Unable to check if Zone already exists"; } } if ('Edit'==$args['btnSubmit']) { $sel_query = "SELECT * FROM `zone` WHERE `zn_channel_out` = ? AND `zn_callrate` = ? AND `zn_ndcode` = ? AND `zn_lacode` = ? AND `zn_id` <> ?"; $data = array( $args['txtToken'], $args['txtCallrate'], $args['txtNDCode'], $args['txtLACode'], $args['zid'] ); $sel_st = $db->prepare($sel_query); $sel_res = $db->execute($sel_st,$data); if(handleError($sel_res)) { if(0==$sel_res->numRows()) { $upd_query = "UPDATE zone SET zn_ndcode = ?, zn_lacode = ?, zn_type = ?, zn_zmp = ?, zn_name = ? WHERE zn_id = ?"; $data = array( $args['txtNDCode'], $args['txtLACode'], $args['txtType'], $args['txtZmp'], $args['txtName'], $args['zid'] ); $upd_st = $db->prepare($upd_query); $upd_res = $db->execute($upd_st,$data); if(handleError($upd_res)) { return "Zone updated successfully"; } else { return "Unable to update Zone!"; } } else { return "There is already a zone with those credentials."; } } else { return "Unable to check if Zone already exists"; } } if ('Delete' == $args['btnSubmit']) { $del_query = "DELETE FROM zone WHERE zn_id = ?"; $del_st = $db->prepare($del_query); $del_res= $db->execute($del_st,array($args['zid'])); if(handleError($del_res)) { return "Zone deleted successfully"; } else { return "Unable to delete zone"; } } } // end of function process_data ?>