Autor Zpráva
Sylar
Profil
Zdravím,
snažím se skrz jquery udělat uložení formuláře na pozadí, ale nějak se mi to nedaří. především moc nechápu co mi vrací jquery funkce .post
  function saveIframe() {
  $.post('http://www.stranka.cz/editacni-formular/?id_polozky=2', {obsah: "test"}, function(data) {
    alert(data);
  });
  }

tento kód by mi měl na stránku http://www.stranka.cz/editacni-formular/?id_polozky=2 odeslat $_POST['obsah'] s hodnotou "test" a v data bych tedy měl mít toto pole vráceno nebo jsem vedle?
když si ale vyalertuju proměnnou data, vytiskne se mi celá stránka s editačním formulářem, kde je navíc input[obsah] s původní hodnotou a nikoliv s hodnotou "test".

pokud se mi toto podaří vyřešit, rád bych věděl, zda-li jquery umí vzít celý formulář ze stránky a vzít tedy všechny POSTy, které v tomto formuláři jsou a ty zpracovat. na editační formuláře mám šablonu, do které se mi formuláře dynamicky generují a uvítal bych kdyby bylo "nějak" možné předat jquery pouze url s třeba ID formuláře a on by si z něj vytáhl všechny hodnoty z inputů, selectů a textarey přes POSTy
_es
Profil
Sylar:
vytiskne se mi celá stránka s editačním formulářem
Zrejme odosielaš formulár aj normálnym spôsobom, musíš tomu zabrániť.
Alebo nepouži formulár vôbec, formulárové prvky nemusia byť len vo formulári.
Sylar
Profil
_es:
Zrejme odosielaš formulár aj normálnym spôsobom,
to si nemyslím, protože stránka se mi po kliknutí na tlačítko nerefreshne - tzn. formuláře se klasickým způsobem neodešle. formulář odesílám následujícím tlačítkem, zavolám fci saveIframe() (viz. výše) a return false; zapříčiní odeslání formuláře klasickým způsobem ne?
<input class="submit" type="submit" id="submit_cont" name="submit_cont" onclick="saveIframe(); return false;" value="Uložit a pokračovat" />
pcmanik
Profil
Sylar:
Ved ale ty tomu POSTU nepredavas ziadne udaje, tak co tam chces poslat? Si poriadne nastuduj manual.
Sylar
Profil
pcmanik:
jakto? posílám mu $_POST['obsah'] s hodnotou "test" ne? aspoŇ tohle stojí v manuálu (nebo jsem slepý?)
  function saveIframe() {
  $.post('http://www.stranka.cz/editacni-formular/?id_polozky=2', {obsah: "test"}, function(data) {
    alert(data);
  });
  }
pcmanik
Profil
Sylar:
Ano, ja som ta zle pochopil, A co ti potom nefunguje na tej navratovej hodnote? Ved ten php skript musi nieco vypisat, aby sa ti to mohlo ulozit do premennej data, ktoru nasledne alert-ujes.
Sylar
Profil
pcmanik:
no, na té stránce http://www.stranka.cz/editacni-formular/?id_polozky=2 je input s name "obsah", který se snažím přepsat, takže po zavolání funkce saveIframe by se mi měla vrátit ta samá stránka ale v inputu "obsah" by měl být text "test", říkám to správně? ale to se bohužel nestane a v inputu je stále ten samý text, tzn. jako by to tuto část
{obsah: "test"}
úplně ignorovalo.
_es
Profil
Sylar:
na té stránce http://www.stranka.cz/editacni-formular/?id_polozky=2 je input s name "obsah"
Že ty máš na tej stránke obyčajný statický HTML súbor a čuduješ sa, prečo že ti nejako nespracúva prijaté hodnoty?

pcmanik:
Ved ten php skript musi nieco vypisat
O nejakom PHP skripte tu zo strany Sylara nebola reč.
Sylar
Profil
_es:
na té stránce samozřejmě je PHP script, který má ten STATICKÝ formulář zpracovat.
  function saveIframe() {
  $.post('http://www.stranka.cz/editacni-formular/?id_polozky=2', {obsah: "test"}, function(data) {
    alert(data);
  });
  }

myslel jsem, že tenhle kód zavolá stránku http://www.stranka.cz/editacni-formular/?id_polozky=2 pomocí POSTu a do $_POST['obsah'] vloží "test" nebo to tak snad není?
_es
Profil
Sylar:
na té stránce samozřejmě je PHP script
Prečo samozrejme? O programovacom jazyku PHP si sa sa v tomto vlákne zmienil až v predchádzajúcom príspevku.

na té stránce samozřejmě je PHP script, který má ten STATICKÝ formulář zpracovat.
A ako ten skript vyzerá a čo vracia, ak ho odošleš normálnym spôsobom cez formulár?
Sylar
Profil
_es:
halleluja ... už funguje. script se zpracovává pokud je isset($_POST['submit_cont']), což v tomhle případě nebyl. toto už funguje.
  function saveIframe() {
    $.post('<?= ACTUAL_WP; ?>', {obsah: "test", submit_cont: true}, function(data) {
      alert(data);
    });
  }


ještě jednu otázku mám ale. dokáže nějak jquery zpracovat celý formulář, aniž bych mu musel vypisovat do výše uvedené funkce všechny názvy proměnných a jejich hodnoty?
příklad. je možné místo něčeho podobného
  function saveIframe() {
    $.post('<?= ACTUAL_WP; ?>', {obsah: "test", nazev: "testovací název", poradi: 4, submit_cont: true}, function(data) {
      alert(data);
    });
  }

napsat jen tohle (ten zápis je pouze pro představení myšlenky)
  function saveIframe() {
    $.post('<?= ACTUAL_WP; ?>', {#editacni_formular}, function(data) {
      alert(data);
    });
  }

kde #editacni_formular je formulář s položkami obsah, nazev a poradí ?
pcmanik
Profil
Sylar:
Funkcia serialize
Sylar
Profil
pcmanik:
skvělé,děkuji moc
_es
Profil
Sylar:
Reakcia na [#3]:
Zrušenie odoslania formulára by malo byť cez udalosť onsubmit formulára, nie cez udalosti formulárových polí - v rôznych prehliadačoch sa to môže chovať rôzne.

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:

0