|
To add the button to a web page, follow the instructions
below.
| 1.
|
Proceed to the Visual
Editor and select a page you wish to modify. |
| 2.
|
Right-click somewhere on the page, select Insert -> Button. |
| 3.
|
Type in the button caption and code to be executed after button
is pressed. You can add both client-side (Javascript) and
server-side (PHP) events. Click OK. |
| 4.
|
Now button is added to your web page. You can drag the button
to change its location. |
To edit the code, right-click the button and select Properties. Also you can edit the code
on the Events page.
Example 1. Insert "Add this
product to shopping cart" button
For the Edit/View pages the $keys parameter in the OnServer event contains the
information about the current record. To access specific key column
you can use $keys["KeyFieldName"].
For example, there is a Products table. To insert Add this product to shopping cart
button on the View page, add the following code to the OnServer event (Server tab):
|
global $dal;
if ($keys["ProductID"])
{
//add new records to the ShoppingCart table
//save current username in the UserID field
$ShoppingCart = $dal->Table("ShoppingCart");
$ShoppingCart->Product = $keys["ProductID"];
$ShoppingCart->Quantity = 1;
$ShoppingCart->UserID = $_SESSION["UserID"];
$ShoppingCart->Add();
}
$result["txt"] = "Product was added";
|
and this code to the OnAfter event (Client After tab):
|
var message = result["txt"] + ".";
|
For more information about using Data Access Layer (DAL), see
Data Access Layer.
Example 2. Send records
selected on the List page via email
For the List page the $keys parameter in the OnServer event contains the
information about all records that are selected on this page:
$keys[0][ "ID1"], $keys[0]["ID2"] - first selected record
$keys[1][ "ID1"], $keys[1]["ID2"] - second selected record
...
To send records selected on the List page via email, add the
following code to the OnServer event (Server tab):
|
global $dal;
$email_msg = "";
$email_msg.= "List of records";
foreach($keys as $idx=>$val)
{
$email_msg.= "Record: ".($idx+1)."\r\n";
//select values from TableName based on $val["ID1"]
$tblName = $dal->Table("TableName");
$rstmp = $tblName->Query("ID1=".$val["ID1"],"");
$datatmp = db_fetch_array($rstmp);
$email_msg.= "FieldName1: ".$datatmp["FieldName1"]."\r\n";
$email_msg.= "FieldName2: ".$datatmp["FieldName2"]."\r\n";
$email_msg.= "\r\n";
}
//send email
$email="test@test.com";
$subject="Sample subject";
runner_mail(array('to' => $email, 'subject' => $subject,
'body' => $email_msg));
|
For more information about using Data Access Layer (DAL), see
Data Access Layer.
Example 3. Modify the value of
a field for all selected records on the List page
To modify the value of a field for all selected records on the
List page, add the following code to the OnServer event (Server tab):
|
foreach($keys as $idx=>$val)
{
$sql = "update Invoices set Status='Paid' where
InvoiceID=" .$val["InvoiceID"];
CustomQuery($sql);
}
|
Example 4. Make a button
redirect to another page
To make a button redirect to another page, add the following
code to the OnBefore event
(Client Before tab) or
OnAfter event
(Client After tab):
|
location.href="http://cnn.com";
|
Example 5. Show the message to
the customer for limited period of time
Let's say you have a button that retrieves a piece of sensitive
info from the server that needs to be shown to the customer for a
short period of time. After that this message needs to be hidden.
To do this, add the following code to the OnAfter event (Client After tab):
|
// this message includes the SSN retrieved from
the server
var message = result["txt"];
ctrl.setMessage(message);
// clear the message after 5 seconds
setTimeout(function(ctrl) {
ctrl.setMessage("");
}
, 5000, ctrl);
|
|