Access a field by PHP

Access a field by PHP in ChronoForms.

Overview

The issue occurs when trying to access a form field's value using an incorrect PHP method.
Use the get method with the correct dot notation path to retrieve the field value.

Answered
Connectivity v6
Mi Missimi 14 Aug, 2017
Hi all,

first of all, sorry for my poor english.
This is the problem:
I am not able to access a field in a form by PHP.
I call this event:
{fn:leggi_pensionato}
{view:pensionato_form}
{debug:}
The view content is: {view:pensionato_form_fields}
All the fields are correcty viewed but i am not able to test a field content by PHP.
I know i can not use the shortcode directly in a PHP action, and therefore i use this function: $this->data("field_name", "default value").
I attach the output of debug:
_________________________________________________________________
Array
(
[conn] => pensionati
[pensionato_id] => 1
[event] => edit_pensionato
[Itemid] => 324
[option] => com_chronoconnectivity6
[view] => connection
)

Array
(
[leggi_pensionato] => Array
(
[log] => Array
(
[0] => SELECT COUNT(`Pensionato`.`id`) AS `Pensionato.count` FROM `mytable_pensionati` AS `Pensionato` WHERE `Pensionato`.`id` = '1';
[1] => SELECT `Pensionato`.`id` AS `Pensionato.id`, `Pensionato`.`categoria` AS `Pensionato.categoria`, `Pensionato`.`name` AS `Pensionato.name`, `Pensionato`.`datanascita` AS `Pensionato.datanascita`, `Pensionato`.`username` AS `Pensionato.username`, `Pensionato`.`email` AS `Pensionato.email`, `Pensionato`.`datains` AS `Pensionato.datains`, `Pensionato`.`note` AS `Pensionato.note`, `Pensionato`.`matricola` AS `Pensionato.matricola`, `Pensionato`.`email2` AS `Pensionato.email2`, `Pensionato`.`iniziospettanza` AS `Pensionato.iniziospettanza`, `Pensionato`.`pensionato` AS `Pensionato.pensionato`, `Pensionato`.`dantecausa` AS `Pensionato.dantecausa`, `Pensionato`.`fisso` AS `Pensionato.fisso`, `Pensionato`.`mobile` AS `Pensionato.mobile`, `Pensionato`.`ufficio` AS `Pensionato.ufficio`, `Pensionato`.`indirizzo` AS `Pensionato.indirizzo`, `Pensionato`.`cap` AS `Pensionato.cap`, `Pensionato`.`citta` AS `Pensionato.citta`, `Pensionato`.`provincia` AS `Pensionato.provincia`, `Pensionato`.`stato` AS `Pensionato.stato`, `Pensionato`.`created` AS `Pensionato.created`, `Pensionato`.`created_by` AS `Pensionato.created_by`, `Pensionato`.`modified` AS `Pensionato.modified`, `Pensionato`.`modified_by` AS `Pensionato.modified_by` FROM `mytable_pensionati` AS `Pensionato` WHERE `Pensionato`.`id` = '1' LIMIT 30;
)

[var] => Array
(
[Pensionato] => Array
(
[id] => 1
[categoria] => Iscritto
[name] => Paolino Paperino
[datanascita] => 15/03/1954
[username] => paolino.paperino
[email] => alfa@gmail.com
[datains] => 07/10/2014
[note] =>
[matricola] => 00001234
[email2] =>
[iniziospettanza] => 01/01/2001
[pensionato] => diretto
[dantecausa] =>
[fisso] =>
[mobile] => 12345678
[ufficio] =>
[indirizzo] => Via Alfa Beta, 162
[cap] => 00136
[citta] => ROMA
[provincia] => RM
[stato] =>
[created] => 0000-00-00 00:00:00
[created_by] =>
[modified] => 2017-08-11 08:48:17
[modified_by] => Nome Cognome
)

)

)

)
____________________________________________________________________
I tried to access the "matricola" field by this code:
$this->data(["leggi_pensionato"]["Pensionato"]["matricola"],"00003145")
The funcion's result is "Array".
What is the correct "field_name" to pass the function and obtain "00001234"?

Best regards to all
Max_admin Max_admin 14 Aug, 2017
Answer
Hi Missimi,

The shortcode in this case should be
{var:leggi_pensionato.Pensionato.matricola}
and the PHP version should be:
$this->get("leggi_pensionato.Pensionato.matricola");


Best regards,
Max
Max, ChronoForms developer
ChronoMyAdmin: Database administration within Joomla, no phpMyAdmin needed.
ChronoMails simplifies Joomla email: newsletters, logging, and custom templates.
This topic is locked and no more replies can be posted.