Smarty Forum Index Smarty
The discussions here are for Smarty, a template engine for the PHP programming language.
Problem z html_options

 
Post new topic   Reply to topic    Smarty Forum Index -> Language: Polish
View previous topic :: View next topic  
Author Message
And
Smarty n00b


Joined: 04 May 2010
Posts: 2

PostPosted: Wed May 05, 2010 3:53 pm    Post subject: Problem z html_options Reply with quote

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
View user's profile Send private message
domos
Smarty n00b


Joined: 07 Sep 2010
Posts: 1

PostPosted: Tue Sep 07, 2010 2:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
And
Smarty n00b


Joined: 04 May 2010
Posts: 2

PostPosted: Mon Dec 20, 2010 2:03 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Smarty Forum Index -> Language: Polish All times are GMT
Page 1 of 1

 
Jump to:  
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
Protected by Anti-Spam ACP