Autor | Zpráva | ||
---|---|---|---|
thouareg Profil |
#1 · Zasláno: 20. 3. 2011, 11:15:47
Ahoj, mám tenhle snažím se naučit používat jquery. Mám tenhle jednoduchej scriptík kterej by měl přidávat položku do databáze (MySQL). Funguje, položky přidává, jen s ním mám dva zásadní problémy.
1. I když mám nadefinovaný typ jako POST chová se mi jako get, všechno proběhne, ale v adresním řádku se mi objeví "prehled.php?x=277&y=543". 2.Dokud jsem neměl ve formuláři iconu na odeslání, ale jen input type button, všechno se chovalo ajaxově(ale i s problémem get), teď se stránka po vykonání všeho reloadne. Nevím jestli je to mou neznalostí nebo slepostí, může mi někdo prosím poradit? <script src="jquery.js" type="text/javascript"></script> <script> function pridej() { if (pridavac.addText.value==0){ $("#v1").html("Musíte něco napsat").show('slow'); } else { $.ajax({ type:'POST', url:'pridej.php', data:({text:pridavac.addText.value, cat:"česká"}),success:function(vystup1){ $("#v1").text(vystup1).slideDown('slow'); alert ("A"); } }) }; };</script> formulář <form name="pridavac"> <input type="text" name="addText" /><input type="image" src="img/ico_add.png" width="17" height="17" alt="pridej" onClick="pridej()" /></form> <div id="v1"></div> obsah "pridej.php" <?php $text = $_POST['text']; $cat = $_POST['cat']; if ($text!=""){ $query = "insert into note_poznamky values (null , default, '$text', '$cat');"; $result = mysql_query($query) or die("Nepodařilo se přidat poznamku."); mysql_close(); echo $text; }else{ echo "Musíte napsat text poznámky.";}; ?> |
||
Marek88 Profil |
#2 · Zasláno: 20. 3. 2011, 11:45:16 · Upravil/a: Marek88
To není ajaxem, ale bude to vlastnost inputu s obrázkem, že při kliknutí předá souřadnice, na které se klikno (nemám s tím zkušenosti, tak jen hádám). Dej místo toho obrázek normálně tagem <img>. Onklik pro odeslání mu můžeš přiřadit uplně stejně...
Edit: Nebo by vlastně mohlo stačit upravit onClick="pridej(); return false;". Tím return false se zruší standardní odesílání formuláře, takže by se ty souřadnice neměly předat. |
||
thouareg Profil |
#3 · Zasláno: 20. 3. 2011, 12:09:18
Marek88:
dobrý nápad :-) děkuju ovšem teď mě nějak nenapadá jak tomu dodat aby to reagovalo i na klávesu "ENTER". |
||
Marek88 Profil |
#4 · Zasláno: 20. 3. 2011, 12:19:28
No tak tomu input s obrázkem nebo obrázku seber ten onclick a formu přidej onsubmit.
<form name="pridavac" onSubmit="pridej(); return false;"> <input type="text" name="addText" /><input type="image" src="img/ico_add.png" width="17" height="17" alt="pridej" /></form> <div id="v1"></div> |
||
thouareg Profil |
#5 · Zasláno: 20. 3. 2011, 12:25:47
Máš pravdu, dneska jsem natvrdlej. Jsem zvyklej do všech formulářů cpát tlačítko submit, tak mě vůbec nenapadlo, že tam nemusí být :-)
Děkuju za rady :-) |
||
panther Profil |
#6 · Zasláno: 20. 3. 2011, 12:28:08
thouareg:
„tak mě vůbec nenapadlo, že tam nemusí být“ odesílací tlačítko by tam mělo být, pokud to má fungovat i bez JS. Pokud to fungovat nemá, měl by ten formulář být bez JS nepřístupný (je zbytečný). Tzn. buď skrytý (a JavaScriptem zobrazovaný), nebo přímo JavaScriptem generovaný. |
||
thouareg Profil |
#7 · Zasláno: 20. 3. 2011, 12:54:43
panther:
"odesílací tlačítko by tam mělo být, pokud to má fungovat i bez JS. " udělal jsem to tak, že pokud je zapnutý JS tak pri načetení stránky přepíše formulář na beztlačítkový, pokud je JS vypnutý, funguje to normálně jako klasický formulář. |
||
Časová prodleva: 13 let
|
0