Location: PHPKode > scripts > B-Forms > b-forms/edittopic.php
<?
// Here I call some of my local settings and functions
require_once("local.inc");
require_once("common.inc");

// Include the library
require_once("b-forms/b-forms.inc");
require_once("b-forms/layout.inc");

init_db(TRUE); // This is my local function that opens $blog_link mysql connection.

// Define the form structure

$form = new Form("denied.html");
$bl = new BaseLayout();

$block = & new Block("topic");
$block->add_property(new TextProperty("name", "Name", "", TRUE, 64));
$block -> add_property(new ButtonProperty("save", "Save", TRUE));
$block -> add_property(new ButtonProperty("delete", "Delete"));
$block -> add_property(new ButtonProperty("cancel", "Cancel"));

$form -> add_block($block);

// Define triggers

function form_on_open() {
   global $form, $blog_link, $HTTP_GET_VARS;

   if (isset($HTTP_GET_VARS["topic"])) {
      $query = sprintf("SELECT name FROM   topics WHERE  id = %d",$HTTP_GET_VARS["topic"]);
      $result = mysql_query($query, $blog_link);

      $num_rows = mysql_num_rows($result);
      if ($num_rows > 0) {
         $row = mysql_fetch_row($result);

         $form->topic->append(RS_OLD);

         $form->topic->id = $HTTP_GET_VARS["topic"];
         $form->topic->name = $row[0];
      }
   }
}

function topic_cancel_on_action($rownum = -1) {
   close_db();

   header("Location: /examples/");
   exit;
}

function topic_save_on_action($rownum = -1) {
    global $blog_link, $form;

    if ($form->validate()) {
       if ($form->topic->get_record_status() == RS_OLD) {
          // We are saving an existing record

          $query = sprintf(
             "UPDATE topics ".
             "SET    name = '%s' ".
             "WHERE  id = %d",
             mysql_escape_string($form->topic->name),
             $form->topic->id);

        }
        else { // We are saving a new record
           $query = sprintf("INSERT INTO topics (name) VALUES ('%s')",
                            mysql_escape_string($form->topic->name));
        }

        @mysql_query($query, $blog_link);

        // Check if the query executed successfully.
        if (mysql_errno()) {
           $error = mysql_error();
           return;
        }

        close_db();
        header("Location: /examples/");
        exit;
    }
}

function topic_delete_on_action($rownum = -1) {
   global $blog_link, $form;

   $query = sprintf("DELETE FROM topics WHERE id=%d", $form->topic->id);
   mysql_query($query, $blog_link);

   close_db();
   header("Location: /examples/");
   exit;
}

function form_pre_display() {
   global $form;
   if (!$form->topic->is_record_existing())
      $form->topic->_properties["delete"]->visible = FALSE;
}

// Do the actual form processing

$form->process();

// Generate the HTML code for the form

echo "<html><body><head>\n";
echo "<link rel=\"stylesheet\" media=\"screen, projection\" type=\"text/css\" href=\"layout.css\" />\n";
echo "</head>";
echo "<h1>".($form->topic->is_record_existing()?"Edit":"Create").
     " topic</h1>\n";
if (isset($error))
   echo "<h2>$error</h2>";

$form->start_form();
$bl->show_block("topic");
$form->end_form();

echo "</body></html>\n";

close_db();
?>
Return current item: B-Forms