Nik_Dev

Рейтинг
2
Регистрация
09.01.2018
Sitealert:
Да, закидывайте все переменные данные для option в массив, а потом выводите циклом.

Спасибо огромное, буду пробовать )

А я так считаю, что рассматривать надо тот код, который используется, чтобы не гадать, какой косяк отредактирован, а какой - нет.

Согласен с Вами, но никаких поправок в часть php не вносил.

Sitealert:

Впрочем, выше Samail уже указал на главную ошибку.
И ещё некорректно
"<option '.$selected.'
Если фраза открывается двойной кавычкой, то и закрывать надо двойной. И то же самое с одинарными.

А как можно по другому задать? Без . только последнее значение выводит.

Кинуть id и alt_name в массив и сделать перебор массива? Или можно как-то по другому реализовать?

Подскажите пожалуйста, буду весьма признателен.

Sitealert:
Это неверное утверждение.
Код на сайте
 <select id='seltag' style='width: 80px;' 

...
<option '..' style="border-bottom
Код на форуме
<select data-placeholder='Размер' class='chosen-select'

...
<option style="border-bottom


---------- Добавлено 08.03.2018 в 17:16 ----------

И что толку гадать, что и где там наредактировано, если код неправильный? Хотите узнать мнение по поводу кода - показывайте код, а не

Просто раньше был chosen, но с ним не работает куки для запоминания <option>.

Сейчас самый обычный <select> использую.

Сам код остался прежним. Я думаю, что если в убрать <select> это class="chosen-select" и это dataplaceholder="Размер", а так же добавить запись сессии в onchange, то на функции PHP оно никак не повлияет. А Вы как считаете?

Но если Вам так проще, то вот код, который не сильно отличается от того, что в посте.

<?php


ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }


/* Вывод размеров из доп. полей для передачи значения в названия <option> */
if(!$xflist_sofa_size) {
$sql_result = $db->query("SELECT xfields FROM " . PREFIX . "_post WHERE category='" . $category . "'");
while ($rows = $db->get_row($sql_result)) {
$xfields[] = $rows;
}

/* Вывод id, alt_name и формирование ссылки для передачи в value в <option> */
$result = $db->query("SELECT id, category, alt_name FROM `" . PREFIX . "_post` WHERE category='" . $category . "'");

while ($row = mysqli_fetch_array($result)) {
$id = $row[id];
$alt_name = $row[alt_name];
$sofa_url .= "http://na-matras.com/" . $id . "-" . $alt_name . ".html";
}

/* Вывод размеров из доп. полей для передачи значения в названия <option> */
$stack = array();
foreach ($xfields as $value) {
if ($value[xfields]) {
$row = xfieldsdataload($value[xfields]);
if ($row[sofa_size]) {
$rowdata = explode("|", $row[sofa_size]);
foreach ($rowdata as $value) {
if ($value) {
$value = trim($value);
array_unshift($stack, $value);
}
}
}
}
}
}

$stack = array_unique($stack);
natsort ($stack);
foreach( $stack as $value ) {
$xf_size .= "<option '.$selected.' style=\"border-bottom: 1px solid #B04401;\" value=" . $sofa_url . ">" . $value . "</option>\n";
}


echo "<select id='seltag' style='width: 80px;' onchange='window.location.href=this.options[sessionStorage.seltag=this.selectedIndex].value'>".$xf_size."</select>";


---------- Добавлено 08.03.2018 в 18:52 ----------

Samail:
$sofa_url .= "http://na-matras.com/"

Конкатенация (точка перед равно), склеивает все урлы.

Без неё выводит только последнее значение id и alt_name.

Saney:
<option> Надо закрывать </option>

<option> закрыт, это тут редактировал, удалил случайно.

---------- Добавлено 08.03.2018 в 15:53 ----------

Sitealert:
На сайте не этот код, а другой. Но не лучше.

На сайте точно такой же код. Разве что изменил <select>, добавил запоминание выбранного <option>