Default ve formuláři z databáze
- dawe27
- Člen | 8
Zdravím,
Potřebuju do inputu dostat jako výchozí hodnotu data z DB, zkoušel jsem to
takto, ale do inputu se nic nenačte. Nemohl by mi někdo prosím poradit?
<?php
require_once "../settings.php";
require "nette.min.php";
use Nette\Forms\Form;
$form = new Form;
$form->setAction('addakt.php?addakt=3');
$form->setMethod('POST');
$form->setDefaults(array('title' =>$data1->title));
$form->addText('title', 'Nadpis:')
->setRequired('Napište prosím nadpis.');
$form->addTextArea('text', 'Text:')
->getControlPrototype()->class("mceEditor");
$form->addSubmit('send', 'Upravit aktualitu.');
if ($_GET["addakt"] == 2) {
$data=mysql_query ("select * from aktuality WHERE `id`=".intval($_GET['upravit'])."");
echo "<h2>Upravit aktualitu</h2>";
while ($data1= MySQL_Fetch_Array($data)) {
echo $form;
}
}
?>
- Pavel Macháň
- Člen | 282
dawe27 napsal(a):
Zdravím,
Potřebuju do inputu dostat jako výchozí hodnotu data z DB, zkoušel jsem to takto, ale do inputu se nic nenačte. Nemohl by mi někdo prosím poradit?<?php require_once "../settings.php"; require "nette.min.php"; use Nette\Forms\Form; $form = new Form; $form->setAction('addakt.php?addakt=3'); $form->setMethod('POST'); $form->setDefaults(array('title' =>$data1->title)); $form->addText('title', 'Nadpis:') ->setRequired('Napište prosím nadpis.'); $form->addTextArea('text', 'Text:') ->getControlPrototype()->class("mceEditor"); $form->addSubmit('send', 'Upravit aktualitu.'); if ($_GET["addakt"] == 2) { $data=mysql_query ("select * from aktuality WHERE `id`=".intval($_GET['upravit']).""); echo "<h2>Upravit aktualitu</h2>"; while ($data1= MySQL_Fetch_Array($data)) { echo $form; } } ?>
Podívej se kde plníš data a kde je dostáváš z DB… to ti neřve
notice, že $data1 nejsou definované?
Když už tak
if ($_GET["addakt"] == 2) {
$data=mysql_query ("select * from aktuality WHERE `id`=".intval($_GET['upravit'])."");
echo "<h2>Upravit aktualitu</h2>";
while ($data1= MySQL_Fetch_Array($data)) {
$form->setDefaults(array('title' =>$data1->title));
echo $form;
}
}
Editoval EIFEL (17. 1. 2014 15:15)
- dawe27
- Člen | 8
Zkoušel jsem to ale pořád nic.. Nevím jestli mi tam něco nechybí,
používam pouze minimalizovanou verzi nette a vše co tam mám je v tom kódu
nahoře.
když tam přidám
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
vypíše mi to chybu: Error: Query was empty
Editoval dawe27 (17. 1. 2014 19:48)
- dawe27
- Člen | 8
to jsem pochopil, pak jsem ten kod upravil jak psal EIFEL ale stále se nic nedělo.
if ($_GET["addakt"] == 2) {
$data=mysql_query ("select * from aktuality WHERE `id`=".intval($_GET['upravit'])."");
echo "<h2>Upravit aktualitu</h2>";
while ($data1= MySQL_Fetch_Array($data)) {
$form->setDefaults(array('title' =>$data1->title));
echo $form;
}
}
- David Matějka
- Moderator | 6445
husty, on stale nekdo pouziva mysql_* fce :)
radeji pouzi nette\database nebo aspon PDO
mysql_fetch_array vraci pole a ne objekt
- dawe27
- Člen | 8
matej21 napsal(a):
husty, on stale nekdo pouziva mysql_* fce :)
radeji pouzi nette\database nebo aspon PDOmysql_fetch_array vraci pole a ne objekt
trochu jsem se podíval na to nette\database a PDO a raději bych použíl to PDO, jelikož nette zatím moc nerozumím. skusil jsem to takto ale na stránce se objeví akorat nadpis h2 jinak nic…
if ($_GET["addakt"] == 2) {
$upravit = $_GET['upravit'];
echo "<h2>Upravit aktualitu</h2>";
$res = $db->query('SELECT * FROM aktuality WHERE id=$upravit');
$row = $res->fetch(PDO::FETCH_ASSOC);
$form->setDefaults(array('title' =>$row->title));
echo $form1;
}
- Etch
- Člen | 403
$form->setDefaults(array('title' =>$row->title));
echo $form1;
Už jenom to echo
o něčem svědčí.
EDIT:
$row = $res->fetch(PDO::FETCH_ASSOC);
$form->setDefaults(array('title' =>$row->title));
Navíc opět jak už ti psal @matej21 přistupuješ
blbě k výsledku. $res->fetch(PDO::FETCH_ASSOC)
ti vrátí
asociativní pole a ne objekt. Takže
$row->title
změň na
$row['title']
Editoval Etch (29. 1. 2014 13:32)