|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
And Smarty n00b
Joined: 04 May 2010 Posts: 2
|
Posted: Wed May 05, 2010 3:53 pm Post subject: Problem z html_options |
|
|
Witam
Jestem początkującym użytkownikiem smarty, mam problem z html_options i proszę o pomoc. Buduję sklep internetowy oparty o PHP, Smarty i Pear. W opcjach wyboru rozmiarów i kolorów wyświetla się pomiędzy właściwymi danymi numeracja, której nie mogę usunąć. Myślę, że mam błąd w html_options, ale nie mogę go znaleźć. Przypadkowo zauważyłem, że nie ma tej niedogodności w IE5. Serwis jest zbudowany na podstawie książki Php5 i Mysql zastosowania e-commerce - autorzy: Darie, Bucica, Balanescu. Ale tego w książce już niestety nie ma – dopisuję te opcje. Wybór kolorów i rozmiarów jeszcze nic nie zapisuje. Baza danych Mysql w tabeli colours ma dwie kolumny: product_id i colour, analogicznie rozmiary.
plik colours.tpl
Code: |
{* wyświetlanie rozmiarów *}
{load_colours assign = "colours"}
Najpierw wybierz rozmiar później kolor: <br>
<select name="colour">
<option value='null'>-- Kolor --</option>
{html_options options=$colours->mColours}
</select>
|
jeszcze do zmiany, ale na razie taka robocza wersja
pliku function.load_colours.php
Code: |
<?php
// funkcja typu plugin dla szablonu colours
function smarty_function_load_colours($params, $smarty)
{
$colours = new Colours();
$colours->init();
$smarty->assign($params['assign'], $colours);
}
// klasa obsługująca rozmiary produktu
class Colours
{
public $mProductId;
public $mColours;
function __construct()
{
if (isset($_GET['ProductID']))
$this->mProductId = (int)$_GET['ProductID'];
else
trigger_error("Nie ustawiony identyfikator produktu", E_USER_ERROR);
}
public function init()
{
$bo_catalog = new BoCatalog();
$this->mColours = $bo_catalog->GetProductColours($this->mProductId);
}
}
?>
|
wyświetlone źródło strony z przeglądarki
Code: |
Najpierw wybierz rozmiar później kolor: <br>
<select name="colour">
<option value='null'>-- Kolor --</option>
<optgroup label="0">
<option label="biały" value="colour">biały</option>
</optgroup>
<optgroup label="1">
<option label="czarny" value="colour">czarny</option>
</optgroup>
<optgroup label="2">
<option label="beż" value="colour">beż</option>
</optgroup>
<optgroup label="3">
<option label="róż" value="colour">róż</option>
</optgroup>
<optgroup label="4">
<option label="fiolet" value="colour">fiolet</option>
</optgroup>
|
Jeżeli jeszcze coś jest potrzebne to proszę napisać.
Dziękuję za pomoc. |
|
Back to top |
|
domos Smarty n00b
Joined: 07 Sep 2010 Posts: 1
|
Posted: Tue Sep 07, 2010 2:37 pm Post subject: |
|
|
Mogę Ci polecić abyś każdą kolumnę przesłał z bazy osobno wtedy nie będą Ci się robić optgroup i zarazem niepotrzebna numeracja
np.
result to wynik zapytania zwróconego przez baze danych (select * from blalal)
Code: |
while($row = $result->fetch_assoc()){
$idcat[] = $row["product_id"];
$col[] = $row["colour,"];
}
$smarty->assign('idcat',$idcat);
$smarty->assign('col',$col);
|
i w tpl
Code: |
<select name="id">
<option value="0" selected>-- wybierz kategorię --</option>
{html_options values=$idcat options=$col selected="0"}
</select>
|
tylko ja z kolei mam problem z values mianowice w manualu jest napisane tak (dokłądnie crashcode)
Code: |
$smarty->assign('id', array(1,2,3,4,5));
$smarty->assign('names', array('bob','jim','joe','jerry','fred'));
|
w tpl
Code: |
<select name=user>
{html_options values=$id output=$names selected="5"}
</select>
|
i wynik przegladarkowy ma być
Code: |
<select name=user>
<option label="bob" value="1">bob</option>
<option label="jim" value="2">jim</option>
<option label="joe" value="3">joe</option>
<option label="jerry" value="4">jerry</option>
<option label="fred" value="5" selected="selected">fred</option>
</select>
|
a u mnie jest
Code: |
<select name="id">
<option value="0" selected>-- wybierz kategorię --</option>
<option label="bob" [b]value="0"[/b] selected="selected">bob</option>
<option label="jim" [b]value="1"[/b]>jim</option>
<option label="joe" v[b]alue="2"[/b]>joe</option>
<option label="jerry" [b]value="3"[/b]>jerry</option>
<option label="fred" [b]value="4"[/b]>fred</option>
</select>
|
małą zmiana z którą nie mogę sobie za bardzo poradzić. I nie wiem czemu się tak dzieje..[/quote] |
|
Back to top |
|
And Smarty n00b
Joined: 04 May 2010 Posts: 2
|
Posted: Mon Dec 20, 2010 2:03 pm Post subject: |
|
|
domos wrote: | Mogę Ci polecić abyś każdą kolumnę przesłał z bazy osobno wtedy nie będą Ci się robić optgroup i zarazem niepotrzebna numeracja
np.
result to wynik zapytania zwróconego przez baze danych (select * from blalal)
Code: |
while($row = $result->fetch_assoc()){
$idcat[] = $row["product_id"];
$col[] = $row["colour,"];
}
$smarty->assign('idcat',$idcat);
$smarty->assign('col',$col);
|
i w tpl
Code: |
<select name="id">
<option value="0" selected>-- wybierz kategorię --</option>
{html_options values=$idcat options=$col selected="0"}
</select>
|
tylko ja z kolei mam problem z values mianowice w manualu jest napisane tak (dokłądnie crashcode)
Code: |
$smarty->assign('id', array(1,2,3,4,5));
$smarty->assign('names', array('bob','jim','joe','jerry','fred'));
|
w tpl
Code: |
<select name=user>
{html_options values=$id output=$names selected="5"}
</select>
|
i wynik przegladarkowy ma być
Code: |
<select name=user>
<option label="bob" value="1">bob</option>
<option label="jim" value="2">jim</option>
<option label="joe" value="3">joe</option>
<option label="jerry" value="4">jerry</option>
<option label="fred" value="5" selected="selected">fred</option>
</select>
|
a u mnie jest
Code: |
<select name="id">
<option value="0" selected>-- wybierz kategorię --</option>
<option label="bob" [b]value="0"[/b] selected="selected">bob</option>
<option label="jim" [b]value="1"[/b]>jim</option>
<option label="joe" v[b]alue="2"[/b]>joe</option>
<option label="jerry" [b]value="3"[/b]>jerry</option>
<option label="fred" [b]value="4"[/b]>fred</option>
</select>
|
małą zmiana z którą nie mogę sobie za bardzo poradzić. I nie wiem czemu się tak dzieje.. | [/quote]
Dziękuję za pomoc i przepraszam, że tak długo nie odpowiadałem. Zmieniłem sposób budowy sklepu i nie zaglądałem jakiś czas na to forum. Jeżeli chodzi o przedstawiony problem to niestety nie umiem pomóc. |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|