Переменная в модуле Joomla - PullRequest
       3

Переменная в модуле Joomla

0 голосов
/ 27 января 2011

Я прижимаю голову к стене .... Я делаю простой модуль joomla, в helper.php я не могу присвоить значения, отправленные из формы.

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

class modReservationHelper {
    public $name;
    public $email;
    public $message;
    public $comment;

    protected function  __construct() {
        $this->name = $_POST['fullname'];
        $this->email = $_POST['email'];
        $this->message = $_POST['message'];
        $this->comment = $_POST['comment'];
    }

     function validateForm() {
        echo $this->name;   //The output is always 0
        echo $this->email+"</br>";//The output is always 0
        echo $this->message;//The output is always 0


        //When I try
        echo $_POST['comment']; // Is correct
        }   
    }

?>

Также я старался не использовать конструктор с тем же нулевым эффектом: (

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

class modReservationHelper {
    public $name;
    public $email;
    public $message;
    public $comment;


    function  getValues() {
        $this->name = $_POST['fullname'];
        $this->email = $_POST['email'];
        $this->message = $_POST['message'];
        $this->comment = $_POST['comment'];
    }

     function validateForm() {
        modReservationHelper::getValues;
        echo $this->name;   //The output is always 0
        echo $this->email+"</br>";//The output is always 0
        echo $this->message;//The output is always 0

        //When I try
        echo $_POST['comment']; // Is correct
        }   
    }

?>

Вся процедура вызывается из "mod_wreservation.php". Я вызываю modReservationHelper :: validateForm ();

1 Ответ

2 голосов
/ 27 января 2011

Вы вызываете класс в статической манере.Таким образом, $ this в классе не будет объектом modReservationHelper.

Правильный способ использования этого, как в mod_wreservation.php:

$helperObj = new modReservationHelper(); // your choice will work (__counstruct) with this
$helperObj->validateForm();

Для второго выбора

$helperObj = new modReservationHelper();
$helperObj->setValue();
$helperObj->validateForm();

и класс будет

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

class modReservationHelper {
    public $name;
    public $email;
    public $message;
    public $comment;


    function  setValues() {
        $this->name = $_POST['fullname'];
        $this->email = $_POST['email'];
        $this->message = $_POST['message'];
        $this->comment = $_POST['comment'];
    }

     function validateForm() {            
        echo $this->name;   //The output is always 0
        echo $this->email+"</br>";//The output is always 0
        echo $this->message;//The output is always 0

        //When I try
        echo $_POST['comment']; // Is correct
        }   
    }

?>

, и будет лучше, если вы будете использовать его в mod_wreservation.php

$post = JRequest::get('post');
$helperObj = new modReservationHelper();
$helperObj->setValue($post);
$helperObj->validateForm();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...