Переменная из Снипита в шаблон
сделал снипет, который передирает таблицу
в $name выводятся все поля из БД задача записать каждле в radio кнопки и вывести их
$sth = $modx->query("SELECT * FROM clients");
print 'Количество клиентов - '.$sth->rowCount();?></br><?
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
$name = $data['name'];
}
$modx->setPlaceholder('output',$name);
но почему то не хочет выводить ее в шаблоне[[snipet]]
[[+output]]
что делаю не такв $name выводятся все поля из БД задача записать каждле в radio кнопки и вывести их
Комментарии: 10
переменная $name в итоге получает только значение имени последнего клиента, убедитесь, что оно непусто(ну и есть такой столбец конечно).
Сам сниппет-то вызывается(можно попробовать вызывать некешированным !snippet)? Добавьте больше отладочных сообщений.
Сам сниппет-то вызывается(можно попробовать вызывать некешированным !snippet)? Добавьте больше отладочных сообщений.
А как вывести все. У меня в name 20 строк и я хочу их выевести последовательно в пресхолдер. Подскажите как это сделать?
Конкатенацией, например, так:
$name .= $data['name'];
или с каким-либо разделителем, как они должны в итоге выглядеть, через запятую, или каждый на новой строке?
Каждый в таком виде
<input type="radio" id="fullname"
name="fullname" value=“[[+name]]">
<label for="fullname">[[+name]]</label>
foreach ($result as $data) {
$name .= "<input type='radio' id='fullname' name='fullname' value='$data["name"]'><label for='fullname'>$data["name"]</label>"
}
А что в шаблоне ввести для отображения? Я чего то запутался уже(? Спасибо за помощь
Вы собрали все в переменную $name, теперь ее делаете плейсхолдером и выводите.
все работает отлично, но появился еще один вопос
снипет
в снипете как я понял нельзя прописать чтобы еще выбирались значения.
снипет
$sth = $modx->query("SELECT * FROM gtgbs_yclients_staff");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
$name .=$data['name'];
}
$modx->setPlaceholder('name',$name);
вывод[[!test]]
<input type="checkbox" name="[[+name]]" value="[[+name]]" [[!+fi.color:FormItIsChecked=`[[+name]]`]] > [[+name]]
но все собирает в один снипет вывожу в formItв снипете как я понял нельзя прописать чтобы еще выбирались значения.
Вам нужно в сниппете сделать сразу через минимальный шаблон или написать:
$sth = $modx->query("SELECT * FROM gtgbs_yclients_staff");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
$name = '';
foreach ($result as $data) {
$name .= $modx->getCunck($tpl,$data);
}
//$modx->setPlaceholder('name',$name);
return $name;
Вам нужно в сниппете сделать сразу через минимальный шаблон или написать:
$sth = $modx->query("SELECT * FROM gtgbs_yclients_staff");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
$name = '';
foreach ($result as $data) {
if ($fidata == $data['name']) {
$data['chekedis'] = 'checked';
}
$name .= $modx->getCunck($tpl,$data);
}
//$modx->setPlaceholder('name',$name);
return $name;
И вызывать[[!+test? &tpl=`@INLINE <input type="checkbox" name="[[+name]]"
value="[[+name]]" [[+chekedis]] >` &fidata=`[[!+fi.color]]`]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.