Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SMARTY][PDO][PHP] problem z lista rozwijana, lista rozwijana w formularzu nie działa
leos
post 21.01.2008, 18:10:21
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.01.2008
Skąd: PL

Ostrzeżenie: (0%)
-----


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

Ten post edytował leos 22.01.2008, 07:53:04
Go to the top of the page
+Quote Post
nospor
post 21.01.2008, 21:09:00
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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}


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
leos
post 22.01.2008, 07:56:50
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.01.2008
Skąd: PL

Ostrzeżenie: (0%)
-----


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);
                                      }



Go to the top of the page
+Quote Post
nospor
post 22.01.2008, 08:37:57
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




faktycznie, tam tez masz blad. powinno byc:
  1. <?php
  2. $p[$id] = $prod;
  3. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
leos
post 22.01.2008, 08:51:46
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.01.2008
Skąd: PL

Ostrzeżenie: (0%)
-----


Dzieki wielkie, bardzo mi pomogles.
Blad banalny, ale jak siedzi sie nad tym juz 10 godzine to go nie zauwazylem
Pozdro
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 06:03