Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SMARTY][PDO][PHP] problem z lista rozwijana
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
leos
Witam,
Mam problem z dzialaniem formularza w Smarty.
Chcę wyświetlić z bazy danych listę wszystkich producentów, a potem wykozstać ja w formularzu, aby wszystko działało automatycznie.

Pliki:
producent.php
Kod
<?php
require_once('funkcje_komp.php'); //odwolanie do biblioteki smarty
try
   {
      $pdo = new PDO('mysql:host=localhost;dbname=sitarz', 'student', 'student');
      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $p = array();
      $stmt = $pdo -> query("SELECT * FROM `producent`");// zapytanie do bazy danych

      while($row = $stmt -> fetch())
        {
                   //tutaj mam wlasnie problem
                $prod = $row['nazwa'];
                $id = $row['idProducent'];
                $p[] = array($id => $prod);
                                      }
           $stmt -> closeCursor();
      unset($stmt);
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }
  
$tpl = new Smarty;
$tpl -> template_dir = './templates';
$tpl -> compile_dir = './templates_c';

$tpl -> assign('p', $p);
?>


dodaj.php
Kod
<?php
include_once('funkcje_komp.php');

$tpl = new Smarty;
$tpl -> template_dir = './templates';
$tpl -> compile_dir = './templates_c';
    
$tpl -> assign('tytul', 'Panel admina - dodanie towaru');
$tpl -> display('dodaj.tpl');
?>


dodaj.tpl
Kod
{include_php file="producent.php"}
<html>
  <head>
    <title>{$tytul}</title>
    <link rel="stylesheet" href="style.css" type="text/css">
  </head>
<body>
<center>

<b>Dodaj towar do bazy:</b>
<form action="add.php" method="post">
<p>Nazwa: <input type=text name=nazwa value="{$tpl.post.nazwa}" /></p>
<p>Kategoria: <input type=text name=kategoria value="{$tpl.post.kategoria}" />
<p>Producent:

//[b]tutaj tez jest cos nie tak[/b]
<select name="producent">
    <option value='null'>-- wybierz --</option>
    {html_options options=$p}
</select></p>

<p>Opis: <input type=textarena rows="2" cols="20" name=opis value="{$tpl.post.opis}" /></p>
<p>Stan: <input type=text name=stan value="{$tpl.post.stan}" /></p>
<p>Cena: <input type=text name=cena value="{$tpl.post.cena}" /></p>
<br /><input type=submit value="Zapisz"><input type=reset value="Reset">
</form>

</center>
</body>
</html>


Bede wdzieczny za kazda porade
Pozdrawiam
nospor
po pierwsze: uzywaj wlasciwego bbcode. Do kodu php ma byc bbcode PHP

po drugie:
http://www.smarty.net/manual/en/language.f...tml.options.php
czyli nie:
Kod
{html_options values=$p.id output=$p.prod}

a:
Kod
{html_options options=$p}
leos
Dziekuje za zainteresowanie nospor.
Faktycznie tam ma byc to:
Kod
{html_options options=$p}

Zmienilem to, ale nadal kod nie dziala. Myśle wiec ze jest to jakis blad przy wypelnianiu tablicy w pliku
producent.php w tym miejscu chyba:
Kod
while($row = $stmt -> fetch())
        {
                   //tutaj mam wlasnie problem
                $prod = $row['nazwa'];
                $id = $row['idProducent'];
                $p[] = array($id => $prod);
                                      }



nospor
faktycznie, tam tez masz blad. powinno byc:
  1. <?php
  2. $p[$id] = $prod;
  3. ?>
leos
Dzieki wielkie, bardzo mi pomogles.
Blad banalny, ale jak siedzi sie nad tym juz 10 godzine to go nie zauwazylem
Pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.