Autor Zpráva
thouareg
Profil
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
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
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
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
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
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
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ář.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: