Nefunguje ajaxové odesílání – formulář se chová divně
- tomasnikl
- Člen | 137
Ahoj,
mam takovy zvlastni problem. Potrebuji formular odeslat ajaxem ale chova se mi to ponekud zvlastne.
Poku formular v sablone vykreslim takto:
{control editForm}
a odeslu jej, tak vse probehne spravne, pokud ale formular v sablone vykresluji takto:
{form editForm}
<table>
<tr><td>{label name /}</td><td>{input name}</td></tr>
<!-- dalsi inputy -->
<tr><td>Uložit<td>{input submit}</td></tr>
</table>
{/form}
formular odeslu a kouknu do konzole zda mi server vrati kod 200, tak nikoliv.
Vraci se mi 500 (chyba servru) a v logu pote vidim toto:
http://www.ulozto.cz/…762d546-html
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1' at line 6
//a cervene mam vyznacen tento radek:
843: DibiDriverException(mysql_error($this->connection),mysql_errno($this->connection),$sql);}elseif(is_resource($res)){return$this->createResultDriver($res);}}function
Pokud ajaxove odesilani vypnu uplne, tak se mi formular odesla at je v sablone vykreslen jakymkoliv zpusobem. Moc teda nechapu, proc se to chova takto. Nenapada vas neco?
- tomasnikl
- Člen | 137
tomu teda moc nerozumim, jakto ze mi problem nastava jen v pripade, ze formular je vypisovan mezi {form} {/form}?
Na dane strance je nutne ID jako parametr ?id=xxxx, ktere mi pri odeslani formulare vzdy zmizelo, a tak jsem nastavil id jako persistentni… a pote toto id predavam modelu, konkretne:
// toto je ten problemovy kus kodu nejspise
public static function getProductById($productId)
{
return dibi::fetch('
SELECT
*
FROM
[product]
WHERE
[id] = %i
', $productId);
}
v presenteru si naplnuji promenou temito datz takto:
// zde je potreba prave ID z url
$product = Products::getProductById($this->params['id']);
nechapu tedy par veci, jakto, ze kdyz vykreslim formular jako {control editForm} tak mi to funguje a kdyz mezi form a /form tak ne. A zadruhe, jakto, ze to hazi chybu pri vyberu dat z databaze, kdyz to vypada, ze dane ID se preda (a zaznam s ID 1 existuje).