External Data
Arclab® Web Form Builder
External Data
Under "External Data" data can be passed to the form. This can be useful
if some data is already known and the user should not have to re-enter it.
Add a new form element and go to "External Data":
URL Parameter: Import Value from URL
Allows to set the value of a field or input element from the browser
URL.
To do this, the value of the URL parameter is taken from the browser
URL and set as the default value.
Please note that you must first create a (hidden) field or input element for which the value should be set.
Important: The parameter is taken from the browser URL, not from the code used to insert the form.
This means that the link leading to the hostpage of the form must already contain the corresponding parameters or data.
Note: Create an extra element for each URL parameter.
Multiple parameters can be strung together in the browser URL by a "&".
Sample: https://www.yourdomain.tld/form.html?name=John&country=US
See also: External Data Samples
Javascript Parameter: Import Value from Hostpage
Allows to set the value of a field or input element from a Javascript
variable defined in the host page.
To do this, the value of the Javascript
variable is taken from the host page and set as default value.
Please note that you must first create a (hidden) field or input element for which the value should be set.
Important: The javascript variable must be defined in your host page and initialized before the form is loaded.
Add a separate element for each parameter or javascript variable !!
The element "Javascript Parameter" can also be used to transfer values from a database, which are read from a php hostpage and transferred into the Javascript variables, into the form. In this case, the php hostpage would have to populate the Javascript variables with the values from the database. The element serves as a universal interface for transferring external data into the form.
Sample:
In the following example, the name from the Javascript variable "Name" should be transferred to the field {Name}.
Add the following Javascript code to the "<head>" or "<body>" of the HTML or php page in your host page.
<script>
var
Name='John
Smith';
</script>
Add a new form item "Javascript Parameter" and select the Javascript
variable name and the field name.
Now the value of the field {Name} is
defined with the value of the javascript variable "Name" when loading the
form.
If you want to transfer the value of a database query in the PHP host page to the form, you can use the following PHP example code:
...
<?php
...
// database query result (store the name in
$n)
$n =
$row["Name"];
...
// assign the query
result to the javascript variable
echo "<script>var
Name='$n';</script>";
...
?>
External Data Samples
The following examples show how to set the default value of a (hidden)
field or input element.
In principle, this works the same for all input
elements and fields.
With a dropdown, radio button or checkbox, however, there is a small
difference.
Here you have to pass the item "Value"
of the element as a parameter and not the text displayed in the form.
For this sample we use a Dropdown List with the field
name: "Product", which contains 5 Elements: Product A-E.
Please note, that the item value is different from the text ... it's A-E
The default selection is "Product A" (Value: A) and we want to change
it using an parameter (external data) to "Product C" (Value: C).
In this
sample we will show both ways, using "URL Parameter" and "Javascript Parameter".
Please note, either use "URL Parameter" OR "Javascript
Parameter".
Sample: URL Parameter
Add "Special Elements > External Data > URL Parameter".
Type in the "Parameter Name", e.g. "p"
and select the field "{Product}": (we want to set
the value for "Product")
Now open the hostpage/form in your browser
and add the parameter to the URL:
https://www.yourdomain.tld/hostpage.html?p=C
Please note, that "p" is just a sample. You can use any parameter name, you just need to enter the varname as "Parameter Name" in the dialog above!
Sample: Javascript Parameter
Add "Special Elements > External Data > Javascript Parameter".
Type in the Javascript Variable Name, e.g. "p"
and select the field "{Product}": (we want to set
the value for "Product")
Now edit your hostpage and assign a value for the javascript variable "p":
...
<body>
<script>var
p='C';</script>
...
Please note, that "p" is just a sample. You can use any varname, you just need to enter the varname as "Javascript Variable Name" in the dialog above!
Sample: Passing Values from a PHP Database Query
In the following example, the input fields for first name and last name are to be filled with values from a database query.
First add the input fields to your form.
You can also use hidden fields
instead, if the user should not be able to edit the values.
The form now contains 2 fields:
{First_Name} and {Last_Name}.
We now have to establish the connection from the form fields to the Javascript
variables.
The form element "Javascript Parameter" (in "External Data") is used for this.
Insert two "Javascript Parameter":
fname for:
{First_Name}
lname for:
{Last_Name}
The form should now look like this:
(The position of the "Javascript
Parameter" does not matter here)
Now the result of the PHP database query has to be transferred
to the Javascript variables.
To do this, edit the PHP host page
that executes the database query.
The transfer can be done using a simple PHP echo statement:
...
<?php
...
// query database (basic sample code without error checking!)
$conn = mysqli_connect($servername, $username,
$password, $dbname);
$sql = "SELECT * FROM Sample WHERE id=15";
$result
= mysqli_query($conn, $sql);
// the query result should be a single row!
$row = mysqli_fetch_assoc($result);
...
// database query result is
in $row
// use temporary PHP variables ($firstname and $lastname) to
avoid a "quote" error in the echo statement
$firstname = $row["FirstName"];
$lastname = $row["LastName"];
...
//
assign the query result to the javascript variables
echo "<script>var
fname='$firstname';
var lname='$lastname';</script>";
...
?>
...
The result of the PHP database query is first transferred to the Javascript variables using the "echo" statement. The Javascript variables are linked to the form fields via the "Javascript Parameter" form element. If you now open the host page, the PHP database query is executed and the fields are filled with the values from the database.