Есть такая проблема переменная объявленная в контроллере не работает в шаблоне.Подскажите проблему пожалуйста. Вот код .Заранее спасибо.
Controller.php
class ExampleController{
public function indexAction(){
require_once("layout/contact.php");
}
private function checkAction($data){
$data = htmlspecialchars($data);
$data = strip_tags($data);
$data = trim($data);
$data = stripsclashes($data);
return $data;
}
public function someAction(){
$name = "";
$age ="";
$city = "";
$country = "";
if(isset($_POST["button"])){
$name = $this->checkAction($_POST["name"]);
$age = $this->checkAction($_POST["age"]);
$city = $this->checkAction($_POST["city"]);
$country = $this->checkAction($_POST["country"]);
}
require_once("layout/contact.php");
}
View
layout/contact.php
<form action="#" class="contact-form" method="POST">
<div class="input-wrapper">
<input type="text" name="name" placeholder="Enter Name" id="cont">
<?php print($name); ?>
</div>
<div class="input-wrapper">
<input type="number" name="age" placeholder="Enter Age" id="cont">
<?php print($age); ?>
</div>
<div class="input-wrapper">
<input type="text" name="city" placeholder="Enter City" id="cont">
<?php print($city); ?>
</div>
<div class="input-wrapper">
<input type="text" name="country" placeholder="Enter Country" id="cont">
<?php print($city); ?>
</div>
<div class="input-wrapper">
<button type="submit" name="button" id="mss-btn">Send Message</button>
</div>
</form>
Output:
Undefined variable
$name;
$age;
$city;
$country;
Когда вы делаете require_once("layout/contact.php"), ваш шаблон ничего не может знать о переменных которые объявлены в методе другого класса, он находится в другой области видимости.
Самый простой и самый плохой путь: установить значения в глобальную переменную, например в GET, Но так делать не стоит.
Создайте еще один файл ViewData
class ViewData {
protected static $data = [];
public static function getData() {
return self::$data;
}
public static function setData($key, $value) {
self::$data[$key] = $value;
}
}
ViewData::setData('foo', 'bar');
ViewData::getData('foo', 'bar');
подключите его в контроллере и создайте через new ViewData()
require_once("ViewData.php");
Затем в контроллере устанавливайте переменные ::setData($key, $value) Подключите этот же файл в свой шаблон и доставайте из него установленные значения через ::getData($key, $value)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите какой файл править чтобы поменять шаблон пустой корзины компонента bitrix:salebasket
Для обычной передачи от одного фрагмента в другое с его заменой можно использовать:
Сделал себе ютуб проигрыватель в приложение (по этому уроку https://wwwyoutube