Autor | Zpráva | ||
---|---|---|---|
rudla Profil |
Ahoj, hledal jsem různě na internetu a tady na diskusi něco, co by mi pomochlo, ale buď jsem se vyjadřoval špatně, nebo tu asi tohle snad není.
Mám v podstatě primitivní dotaz. Jakým způsobem přepsat obsah souboru řekněme "soubor.txt"? V php to jde jednoduše pomocí fwrite(), jenže to vyžaduje zase to přesměrování. Hodila by se i metoda na pouhé doplnění textu do dokumentu, zda-li to jde. Děkuju moc za rady. |
||
Radek9 Profil |
#2 · Zasláno: 29. 8. 2012, 20:51:28
rudla:
AJAX jen pošle nějaký požadavek (GET/POST) na nějaký soubor (takře např. PHP script), který to zpracuje. |
||
rudla Profil |
#3 · Zasláno: 29. 8. 2012, 21:04:41
Radek9:
Máš na mysli něo takového? http://www.openjs.com/articles/ajax_xmlhttp_using_post.php |
||
mimochodec Profil |
#4 · Zasláno: 29. 8. 2012, 21:14:44
rudla:
> Mám v podstatě primitivní dotaz. Jakým způsobem přepsat obsah souboru řekněme "soubor.txt"? > V php to jde jednoduše pomocí fwrite(), jenže to vyžaduje zase to přesměrování. Možná by to chtělo tu otázku zformulovat líp. Co ti vadí na přesměrování? |
||
rudla Profil |
#5 · Zasláno: 29. 8. 2012, 21:19:12 · Upravil/a: rudla
mimochodec:
„Možná by to chtělo tu otázku zformulovat líp.“ V podstatě to Radek9 pochopil správně. Jen dokázat zpatlat nějak dohromady kód, který by fungoval. „Co ti vadí na přesměrování?“ Víceméně všechno. Je to dost otravné hlavně v případě, že chci zůstat na stejné stránce (protože se v ní třeba něco děje). EDIT: Ještě bych chtěl doplnit, že by se hodilo něco takového provést pomocí formuláře. Zapomněl jsem dodat. |
||
mimochodec Profil |
#6 · Zasláno: 29. 8. 2012, 21:50:41
rudla:
„V podstatě to Radek9 pochopil správně. Jen dokázat zpatlat nějak dohromady kód, který by fungoval.“ Radek9 odpověděl dost univerzálně. Nevyvozoval bych z toho, že něco pochopil. 1. není jasné, jestli opravdu potřebuješ AJAX. Z toho, že chceš zapisovat něco do souboru, to nijak nevyplývá. 2. není jasné, co ti vadí na přesměrování. Běžné zpracování odeslaného formuláře probíhá tak, že se z načtou odeslané hodnoty, něco se provede (třeba nějaký fwrite) a pak se někam přesměruje, třeba na tu stránku s formulářem, ale už bez těch odeslaných dat. Jestli ti jde o eliminaci vícenásobného odeslání pomocí F5, toto je ten postup. AJAX řeší to, když chceš odeslat data ke zpracování v php, aniž by se stránka znovu načítala. Jestli to chceš využít, tak budiž, ale jak říkám, nesouvisí to s nějakým fwrite. A další věc je, že AJAX nerovná se nutně předávání dat pomocí xml. Jestli rozumíš tomu, co píšu a trváš na AJAXu, tak můžu poradit konkrétněji (nebo kdokoliv jiný). |
||
rudla Profil |
#7 · Zasláno: 30. 8. 2012, 14:42:52
mimochodec:
Já netvrdím, že to souvisí s fwrite, ale že je to "něco jako fwrite v php". Netuším, jak se to dělá, tak mi hned prosím nevyčítej, že nemám pravdu. Na AJAXu trvám, Radek9 tu nastínil přeposílání dat pomocí POST/GET do php, kde se operace provede. V tom případě bych byl moc rád, kdyby mi někdo poradil s tímhle. Myslím že to by vystihovalo moji žádost. :) |
||
Radek9 Profil |
rudla:
Jednoduchý požadavek se dá napsat takhle: var xhr, file = "fwrite.php", post = "klic=hodnota&klic2=hodnota2"; // Klíče a hodnoty v post prohnat případně encodeURIComponent if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("MSXML2.XMLHTTP");//Microsoft.XMLHTTP } if (xhr) { xhr.open("POST", file, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Length", post.length); xhr.setRequestHeader("Connection", "close"); xhr.onreadystatechange = function () { if (this.readyState === 4) { if (this.status === 200) { // Vše proběhlo správně, v this.responseText máš odpověď serveru } else { // Nastala chyba } } }; xhr.send(post); } |
||
Časová prodleva: 2 měsíce
|
|||
rudla Profil |
#9 · Zasláno: 18. 10. 2012, 19:12:36
[#8] Radek9
Na toto téma jsem úplně zapomněl a omlouvám se. Chtěl bych se zeptat, jak už jsem zmínil, jak výše zadaný scrpit zprovoznit přes formulář. Chci hodnoty, které budou odesílány přes post zadat ve formuláři a následně je odeslat. Formulář by se měl po úspěšném odeslání smazat, což zvládnu, ale jde mi o to, jak to spojit. Měl by někdo nápad? Děkuju moc. Za script samozřejmě taky děkuju, funguje přesně tak, jak by měl. ;) |
||
Časová prodleva: 12 let
|
0